728x90
반응형
Silver V
# 1158 요세푸스 문제
링크 : https://www.acmicpc.net/problem/1158
풀이
from collections import deque
N, K = map(int, input().split())
queue = deque(list(range(1, N+1)))
li = []
while queue:
for i in range(K-1):
pop = queue.popleft()
queue.append(pop)
insert = queue.popleft()
li.append(insert)
li = str(li).replace('[', '<')
li = li.replace(']', '>')
print(li)
풀이 방법
- 큐에서 K-1개 만큼 popleft와 append를 적용한다
- 큐에서 popleft를 통해 뽑은 값을 li에 기록한다
- queue에 모든 값이 빠져나올 때까지 반복한다
풀이 후기
- 회전하는 구조에 큐를 활용할 수 있다
- #11866 요세푸스 문제 0(Silver IV)와 동일한 문제다
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] # 7562 나이트의 이동 (0) | 2022.01.16 |
---|---|
[백준 파이썬] # 1697 숨바꼭질 (0) | 2022.01.14 |
[백준 파이썬] # 7569 토마토 (0) | 2022.01.12 |
[백준 파이썬] # 7576 토마토 (0) | 2022.01.11 |
[백준 파이썬] # 2178 미로 탐색 (BFS 풀이) (0) | 2022.01.09 |