[알고리즘/백준] 1158: 요세푸스 문제(python)

스택을 이용해서 풀었다. K번째 수이기 때문에 그 앞에 수들을 popleft로 빼고 append로 맨 뒤에 넣어줬다.

from collections import deque
from sys import stdin


N, K = map(int, stdin.readline().strip().split())
q = deque(range(1, N + 1))
ans = []
while q:
    for i in range(1, K):
        q.append(q.popleft())
    ans.append(q.popleft())
print('<', end='')
print(*ans, sep=', ', end='')
print('>', end='')

좋은 웹페이지 즐겨찾기