알고리즘, 코딩테스트/BOJ 문제풀이
백준 BOJ 1158번 요세푸스 문제 [python]
우징어🦑
2021. 2. 8. 03:17
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
덱을 이용하는 문제
잊고 있던 덱 기본 문법을 익히기 좋은 문제였다.
import collections
people, n = map(int, input().split())
deq = collections.deque([])
answer = []
for p in range(people):
deq.append(p+1)
while len(deq) != 0:
for _ in range(n):
x = deq.popleft()
deq.append(x)
answer.append(deq.pop())
print('<' + ', '.join(map(str,answer)) + '>')
예상치못한 복병이었던 마지막 프린트문.
list 형태로 되어있던 answer를 정해진 출력 형태대로 바꿔서 출력하자