문제
Deque 사용
import sys
from collections import deque
n, k = map(int, input().split())
deq = deque([i for i in range(1, n+1)])
res = []
while len(deq) != 0:
for _ in range(k-1):
# k-1번째 노드까지 deq 맨 뒤로 이동
deq.append(deq.popleft())
# k번째 노드 삭제 후 결과 배열에 추가
res.append(str(deq.popleft()))
print('<'+', '.join(res)+'>')
리스트 사용
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
# 원형 큐 역할 리스트 생성
arr = list(range(1, n+1))
result = [] # 제거된 사람들 순서 저장 리스트
# 요네푸스 순열 계산
idx = 0 # 현재 제거할 사람 인덱스
while (len(arr) != 0): # 사람이 남아 있는 동안 반복
idx += (k-1)
# 원형 리스트 구현 위해 인덱스를 리스트 길이로 나눈 나머지로 사용
idx = idx % len(arr)
# 사람 제거한 뒤 result에 추가
result.append(arr.pop(idx))
print("<", end="")
for i in range(n-1):
print(result[i], end=", ")
print(result[n-1], end="")
print(">", end="")