Published:
Updated:

  • Reference
  • 열심히 하자. 너무 시간 오래 썼다.


Solution

from collections import deque

N, K = map(int, input().split())
q = deque(range(1, N + 1))
yose = []

# N명이 원을 이루면서 앉아 있음
# 순서대로 K번째 사람을 제거 -> 이 제거되는 순서를 계속 저장

# while len(yose) != N:
#     if seq >= len(a):
#         seq -= len(a)
#
#     seq += 2
#     yose.append(a[seq])
#     del a[seq]

# 리스트랑 deque 이용해서 계속 해보다가 시간만 날리는 거 같아서 deque 하나만
while q:
    for _ in range(K - 1):
        # 왼쪽에 있는 걸 빼고 맨뒤에 계속 추가해줘
        q.append(q.popleft())

    # 그 뺀 것을 순열에 순서대로 추가
    yose.append(q.popleft())

print('<', end='')
print(', '.join(map(str, yose)), end='')
print('>')

Leave a comment