사용 언어 - Python3
11866번: 요세푸스 문제 0 (실버5, 큐)
문제 ★큐 문제★
정답
k-1명을 popleft() 하면서 바로 append해주는 deque([]) 문제
(코드 풀이)
popleft()를 k번째 전까지 총 k-1번 진행한다. popleft() 된걸 바로 append하면서 뒤에 순차적으로 추가해준다.
마지막 k번째도 popleft()로 삭제하면서 그 값을 정답에 append한다.
마지막까지 한 원소만 남았을 때까지 while문을 진행한다.
마지막 한 원소만 제외하고 answer를 출력한다.
answer의 마지막 원소는 따로 출력해준다.
# 정답
from collections import deque
n, k = map(int, input().split())
queue = deque()
for i in range(1, n+1):
queue.append(i)
answer = []
while queue:
for i in range(k-1):
queue.append(queue.popleft())
answer.append(queue.popleft())
print("<",end='')
for i in range(len(answer)-1):
print("%d, "%answer[i], end='')
print(answer[-1], end='')
print(">")
레퍼런스
- 정답 참고
- %d (10진수 정수) 출력형식
A =100
print("i have %d" %A) = i have 100
- 정답 깃허브
'Algorithm > 스택&큐&덱&힙' 카테고리의 다른 글
[백준] 10866번 덱 (1) | 2023.01.22 |
---|---|
[백준] 1966번 프린터 큐 (0) | 2023.01.22 |
[백준] 2164번 카드2 (0) | 2023.01.22 |
[백준] 18258번 큐 2 (0) | 2023.01.21 |
[백준] 1874번 스택 수열 (0) | 2023.01.20 |
댓글