GDSC HUFS 3기/Algorithm - Basic
[Algorithm-Basic]Queue
hgene
2022. 6. 2. 11:36
- 큐의 구조.
- __init__(self) : 초기화 함수 (스택과는 달리 front 를 가짐.)
- enqueue(self, val) : 삽입 함수.
- dequeue(self) : 삭제 함수. front 와 queue의 길이를 비교하여 같으면 queue는 비어있는 것.
- 큐의 활용 : Josephus problem
n 이라는 사람의 총 수가 주어지고,
k 라는 몇번째 사람이 죽을 것인지를 알려주면,
최종적으로 살아남는 사람을 구하는 것.
- 큐를 활용한 풀이 : n = 9, k = 3 일 때 Josephus problem
1 2 3 4 5 6 7 8 9
f r
1회전 : k k k → k가 아닌 나머지는 dequeue 하자마자 enqueue. k는 그냥 dequeue.
-------------------------------------------
1 2 4 5 7 8
f r
2회전 : k k → k가 아닌 나머지는 dequeue 하자마자 enqueue. k는 그냥 dequeue.
-------------------------------------------
1 2 5 7
f r
3회전 : k
-------------------------------------------
1 2 7
4회전 : k
-------------------------------------------
1 2
- Dequeue
- Dequeue == Stack + Queue