최대 1 분 소요

문제링크 : https://www.acmicpc.net/problem/11866

1부터 n까지의 수열이 주어지며, k번째 수를 제거한 후 k+1번째 수를 첫 번째 원소로 하는 수열을 반복하는 문제

deque.rotate(x)를 쓰면 쉽게 할 수 있음. 왼쪽으로는 음수값을 넣으면 되므로 쉽게 구현 가능

from collections import deque

n, k = map(int, input().split())
listA = [i for i in range(1, n+1)]
queue = deque(listA)
answer = []
while queue:
    queue.rotate(-k+1)

    step = queue.popleft()
    answer.append(step)

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

카테고리:

업데이트:

댓글남기기