diff --git "a/Hongjoo/\353\260\261\354\244\200/\354\232\224\354\204\270\355\221\270\354\212\244\353\254\270\354\240\234.py" "b/Hongjoo/\353\260\261\354\244\200/\354\232\224\354\204\270\355\221\270\354\212\244\353\254\270\354\240\234.py" new file mode 100644 index 0000000..b4aab36 --- /dev/null +++ "b/Hongjoo/\353\260\261\354\244\200/\354\232\224\354\204\270\355\221\270\354\212\244\353\254\270\354\240\234.py" @@ -0,0 +1,25 @@ +""" +[BOJ]#1158. 요세푸스문제: 실버 4 +https://www.acmicpc.net/problem/1158 + +-1 ~ n 번쨰 사람 중 순서대로 k 번째 사람 제거 +- 출력 : 제거되는 순서대로 출력 + +#FL0W +유형 : 구현, 큐 +원형 큐 배치하기 + 7,3 : 0~ 6 + <3, 6, 2, 7, 5, 1, 4> +""" +import sys +N , K = map(int , sys.stdin.readline().split()) + +#1. 원형 큐 만들기 +elements = [i for i in range(1,N+1)] +answer = [] +p = 0 +while elements : + p = (p + K-1) % len(elements) + answer.append(elements.pop(p)) +#2.출력 +print("<"+", ".join(list(map(str, answer))) + ">") diff --git "a/Hongjoo/\353\260\261\354\244\200/\355\203\200\353\205\270\354\212\244\353\212\224\354\232\224\354\204\270\355\221\270\354\212\244\352\260\200\353\260\211\353\213\244.py" "b/Hongjoo/\353\260\261\354\244\200/\355\203\200\353\205\270\354\212\244\353\212\224\354\232\224\354\204\270\355\221\270\354\212\244\352\260\200\353\260\211\353\213\244.py" new file mode 100644 index 0000000..514f3b7 --- /dev/null +++ "b/Hongjoo/\353\260\261\354\244\200/\355\203\200\353\205\270\354\212\244\353\212\224\354\232\224\354\204\270\355\221\270\354\212\244\352\260\200\353\260\211\353\213\244.py" @@ -0,0 +1,30 @@ +""" +[BOJ] #28066.타노스는 요세푸스가 밉다 : 큐 / 실버2 +https://www.acmicpc.net/problem/28066 +""" +import sys +from collections import deque +input = sys.stdin.readline + +N , K = map(int , input().split()) + +elements = deque([i for i in range(1, N+1)]) +start = 0 +while len(elements) > 1 : # 탐색 종료 조건 : 청설모가 1마리 이하로 남을 떄 + + if len(elements) < K : # K보다 적게 남아있으면, 강제종료 + print(elements[0]) + exit() + # elements 개수 >= K + first = elements[0] + # 1. K개 삭제(first 도 포함해서 일단 삭제) + for i in range(K): # K-1 개 삭제 + + elements.popleft() + + #2.기본 첫번째 요소를 맨 뒤쪽에 추가, + # 다음 첫번째 요소는 자동 맨 앞(idx= 0 )으로 배치됨 + elements.append(first) + + +print(elements[0]) \ No newline at end of file