코딩하는 해맑은 거북이
[Python] 요세푸스 문제 - 백준 본문
해당 글은 백준 1158번 문제 '요세푸스 문제'를 다룬다.
문제
https://www.acmicpc.net/problem/1158
설명
deque의 rotate 함수를 사용해서 -(k-1)만큼 큐를 돌리고, 가장 첫번째 값만 계속 뽑으면 된다.
그리고 출력을 할 땐, replace 함수를 이용해서 리스트의 [ ] 괄호를 < > 괄호로 변경할 수 있다.
코드
from collections import deque
n, k = map(int, input().split())
queue = deque([i for i in range(1, n+1)])
result = []
for i in range(n):
queue.rotate(-(k-1))
first_value = queue.popleft()
result.append(first_value)
print(str(result).replace('[','<').replace(']','>'))
'코딩테스트' 카테고리의 다른 글
[Python] GCD 합 - 백준 (0) | 2022.12.23 |
---|---|
[Python] 분수 합 - 백준 (0) | 2022.12.23 |
[Python] 계단 오르기 - 백준 (DP) (0) | 2022.12.21 |
[Python] 사탕 게임 - 백준 (완전탐색) (0) | 2022.12.21 |
[Python] 30 - 백준 (0) | 2022.12.20 |
Comments