요세푸스 문제(11866)

https://www.acmicpc.net/problem/11866

import sys
from collections import deque

n, k = map(int, sys.stdin.readline().split())

stack = deque([])
answer = []

for i in range(n):
    stack.append(i + 1)

while True:
    stack.rotate(-k + 1)
    answer.append(str(stack.popleft()))
    if len(stack) == 0:
        break

# print('<', end='')
# for i in range(len(answer)):
#     if i == len(answer) - 1:
#         print(answer[i], end='')
#     else:
#         print(answer[i], end=', ')
# print('>')

print('<' + ', '.join(answer) + '>')

# 로직보다 출력에서 더 애먹은 문제다.
# deque.rotate() 만 알면 편하게 풀 수 있는 문제

좋은 웹페이지 즐겨찾기