알고리즘

백준 1158번 : 요세푸스 문제 (Python)

jenyy 2021. 2. 3. 21:41

https://www.acmicpc.net/problem/1158

 

1158번: 요세푸스 문제

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)

www.acmicpc.net

from collections import deque
n,k = map(int,input().split())
data = deque([x for x in range(1,n+1)])

answer = []
while data:
    # 1. k-1만큼 왼쪽으로 회전시키기
    data.rotate(-k+1)
    # 2. 제거하기
    answer.append(str(data[0]))
    data.popleft()

print("<%s>" % (", ".join(answer)))