카테고리 없음

[코드트리] 큐

chaewot 2026. 4. 1. 20:47
  • 문제

번부터 번까지 명의 사람이 원을 이루면서 앉아있고, 양의 정수 가 주어집니다.

다음의 연산을 명의 사람들이 모두 제거될때까지 진행합니다.

  1. 번부터 순서대로 번째 사람을 제거합니다.
  2. 한 사람이 제거되면 남은 사람들로 원을 이루고, 제거된 사람의 위치를 기준으로 다시 번째 사람을 제거합니다.
  3. 번 연산 과정을 반복합니다.

제거되는 사람의 번호를 순서대로 나열한 순열을 구하는 프로그램을 작성하세요.

입력

6 4

출력

4 2 1 3 6 5
from collections import deque

n, k = map(int, input().split())
d = deque()

for i in range(n):
    d.append(i+1)

while d:
    for i in range(k-1):
        d.append(d.popleft())
    print(d.popleft(), end=" ")


# Please write your code here.

deque() 메소드 사용 가능

popleft(): 맨 앞에 있는 요소 제거 가능

 

큐는 먼저 들어온 요소가 먼저 빠지는 것을 잘 활용해야함

이런식으로 너가 해야하는 것을 쓰삼...