2. queue로 풀기

josephus

1
2
3
4
5
6
7
8
9
10
11
def josephus(n,k):
res = []
q = Queue() # 직접 구현한 Queue 클래스
for i in range(n):
q.enqueue(i+1)
while q.front.next: # 끝에서 2번째 원소까지 반복
for _ in range(k-1):
q.enqueue(q.dequeue())
res.append(q.dequeue())
res.append(q.dequeue()) # 마지막 원소 출력
return res