[Boj] 백준 요세푸스 문제0 11866(python)
문제링크 : 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='')
댓글남기기