백준

백준 11866번: 요세푸스 문제 0 (파이썬)

inns21 2023. 7. 28. 10:34

from collections import deque

# n : 사람 수, k : 제거할 번호
n, k = map(int, input().split())

# 사람의 수만큼 deque 생성
n_list = deque([i for i in range(1, n+1)])

# 결과를 저장할 리스트
r_list = list()

while True:
  # 사람이 다 빠지면 종료
  if len(n_list) == 0:
    break
  
  for i in range(k-1):
    # 맨 앞 사람을 뽑아서 맨 뒤로 다시 넣기
    n_list.append(n_list.popleft())
  # 결과 리스트에 맨 앞에 있는 사람을 집어 넣기
  r_list.append(str(n_list.popleft()))

print('<',', '.join(r_list),'>', sep='')