요즘 solved.ac 클래스 문제를 하나씩 풀고 있다. 오늘 11866번 요세푸스 문제 0을 풀면서 드디어 CLASS 2+ 달성했다!! 야호~!


join을 이용해서 정답을 출력하려고 하는데 자꾸 에러가 났다.
join을 이용하려면 꼭 문자열 리스트여야 한다
'구분자'.join(문자열 리스트)
for i in range(1, N+1):
queue.append(i)
이 코드를
for i in range(1, N+1):
queue.append(str(i))
이렇게 고쳐주면 된다.
K번째 사람을 제거해야하므로 K-1번까지는 맨뒤에 원소를 다시 추가해주고
해당하는 K번째 사람은 answer 리스트에 append
+) 파이썬에서 queue는 collections 모듈의 deque으로 많이 쓴다.
queue.popleft() 큐의 맨 앞 원소 빼기
queue.append(x) x를 큐 맨 뒤에 추가하기
import sys
from collections import deque
input = sys.stdin.readline
N, K = map(int, input().split())
queue = deque()
for i in range(1, N+1):
queue.append(str(i)) # 문자열 리스트로 해야 이따 join 이용 가능
answer = []
while queue:
for _ in range(K-1):
queue.append(queue.popleft()) # 맨 앞 원소 빼서 맨 뒤로 추가
answer.append(queue.popleft())
print("<"+', '.join(answer)+">")