Algorithm

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

choiht 2023. 4. 21. 18:49
반응형

문제

https://www.acmicpc.net/problem/11866

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

 

 

풀이

n, k = map(int, input().split())
people = []
answer = []

for i in range(1, n+1):
    people.append(i)
    
while(len(people)):
    for i in range(k-1):
        tmp = people.pop(0)
        people.append(tmp)
    tmp = people.pop(0)
    answer.append(tmp)

    
    
print("<", end='')
print(*answer, sep=', ', end='')
print(">")

큐를 사용하는 문제이다. 

 

1. 리스트에 입력받은 n 만큼 사람들을 넣어놓는다. 

2. k-1만큼의 사람은 앞에서부터 빼서 큐에 다시 넣고, k번째 사람은 아예 큐에서 제거한다. 

3. 이 과정을 반복한다. 

반응형