[BOJ] 11866 요세푸스 문제 0
자료구조, 큐
해당 문제는 queue의 성질을 이용해 원형 링크드리스트를 간편하게 구현할 수 있는 문제이다. K번째까지 popleft와 append를 반복하며 맨 앞에 있는 수를 맨 뒤로 움직이는 방식을 통해 구현하면 된다.
import sys
from collections import deque
def solution(n, k):
# 초기 설정
q = deque()
for i in range(1, n+1):
q.append(i)
answer = '<'
# 원형 리스트를 돌며 popleft, append
while q:
# k - 1 번 popleft -> append
for _ in range(k-1):
now = q.popleft()
q.append(now)
# k 번째 popleft 후 출력
now = q.popleft()
answer += str(now) + ', '
print(answer[:len(answer)-2] + ">")
if __name__ == "__main__":
N, K = map(int, sys.stdin.readline().rstrip().split())
solution(N, K)