본문 바로가기
Algorithm/스택&큐&덱&힙

[백준] 11866번 요세푸스 문제0

by HANNI하니 2023. 1. 22.

사용 언어 - 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

댓글