Study/기초

devyoseph 2021. 10. 8. 17:30
큐: 먼저 들어간 것이 먼저 나가는 구조
상황으로 이해한다
a라는 일을 하고 있는데 a가 끝나면 b를 하라는 지시가 왔다
a가 끝나지 않은 상황에서 할 일을 모두 마치면 c를 하라는 지시가 왔다
a가 끝나지 않은 상황에서 할 일을 모두 마치면 d를 하라는 지시가 왔다
a가 끝났다. 다음의 할 일은?
FIFO(First In First Out)라고 한다
큐는 보통 관모양으로 설명한다
관은 양쪽이 뚫려있다. a, b, c순으로 들어왔을 때 pop을 두번하면 c만 남는다
투 포인터, 슬라이딩 윈도우를 사용할 때 자주 사용하는 개념이다
예제  - 원형테이블

원에서 제거하는 방식으로 할 수도 있다.
하지만 로직이 분명하지 않다는 단점이 있다
큐를 사용해서 풀면 로직이 분명해진다
원은 끝으로 가면 순서가 초기화 되는데 이 점을 이용하는 것이다
관 안에 1, 2, 3, 4, 5, 6, 7, 8을 넣고 앞에 1, 2 두 개를 미리 맨 뒤로 보내는 것이다
3, 4, 5, 6, 7, 8, 1, 2 여기서 3을 pop하면 현재위치가 반환되며 로직을 나타낼 수 있다
요세푸스 순열을 참고한다

'Study > 기초' 카테고리의 다른 글

트리  (0) 2021.10.09
그래프  (0) 2021.10.09
스택  (0) 2021.10.08
비트와 바이트  (0) 2021.10.07
고득점 전략  (0) 2021.10.07