사용 언어 - Python3
11866번: 요세푸스 문제 0 (실버5, 큐)
문제 ★큐 문제★
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
정답
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(">")
레퍼런스
- 정답 참고
[백준] 11866번 요세푸스 문제 0 (Python 파이썬)
www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 문제 설명 1번부터 N번까지 N명의 사람이 원을 이루면서
hongcoding.tistory.com
- %d (10진수 정수) 출력형식
A =100
print("i have %d" %A) = i have 100
[파이썬 기초] print 함수를 이용한 출력 (%f, %d, %s 이게 다 뭔가요?)
[파이썬 기초] print 함수를 이용한 출력 (%f, %d, %s 이게 다 뭔가요?) %f, %d, %s 등은 파이썬에서 문자열을 포맷팅(formatting)하는 방식입니다. formatting은 자료의 형식(문자,정수,실수 등)을 이용하여 출
pybasall.tistory.com
- 정답 깃허브
GitHub - yyeongeun/codingtest: 코딩테스트 공부
코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.
github.com
'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 |
댓글