코드

from collections import deque

n, k = map(int, input().split())
deq = deque(range(1, n + 1))

print('<', end='')

# 
while deq:
    
    # k번째 요소를 완전 제거해야 하므로
    # k-1번째 요소까지는 덱의 뒤에 다시 저장
    for _ in range(k-1):
        deq.append(s[0])
        deq.popleft()
        
    # 제거된 k번째 요소 출력
    print(deq.popleft(), end='')
    
    # 아직 다 비워지지 않았다면 , 출력 => 맨 마지막 요소 출력후에 ,가 찍히지 않음
    if deq:
        print(',', end=' ')
print('>')

문제 해설

k번째 요소를 삭제하고 k-1번째 까지의 요소는 다음 반복에도 유지되어있어야 하므로 덱의 뒤에 차례대로 추가해준다. 이 과정을 덱이 빌 때까지 반복하면 정답.

댓글남기기