BOJ 1158번 요세푸스 문제 Python 풀이
분류: Data Structure (자료구조)
https://www.acmicpc.net/problem/1158
from sys import stdin
from collections import deque
input = lambda: stdin.readline().rstrip()
if __name__ == "__main__":
N, K = map(int, input().split())
dq = deque(i for i in range(1, N + 1))
ans = []
while dq:
dq.rotate(-K + 1)
ans.append(dq.popleft())
print('<' + ', '.join(map(str, ans)) + '>')
Deque 자료구조에 번호를 넣고 K씩 rotate 하여, 제거할 번호를 맨 앞으로 가져온다. 그리고 맨 앞 숫자를 꺼내어 ans
리스트에 넣어 답을 구한다.