[알고리즘] 우선순위 큐 (Priority Queue)

우선순위 큐 (Priority Queue) ☝

보통의 큐는 FIFO의 원칙에 따라 먼저 들어온 데이터가 먼저 나가게 된다.

그러나 우선순위 큐에서는 데이터들이 우선순위를 가지고 있고, 우선순위가 높은 데이터가 먼저 나가게 된다.

우선순위 큐는 자료구조 ‘힙(Heap)‘을 사용해 구현한다.

우선순위 큐의 사용법에 대해 알아보자.


1. 우선순위 큐 선언
import java.util.PriorityQueue;

// 우선순위가 낮은 숫자 순으로 정렬
PriorityQueue<Integer> pq = new PriorityQueue<>();

// 우선 순위가 높은 숫자 순으로 정렬
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());


2. 우선순위 큐 삽입 및 삭제

우선순위 큐의 삽입 및 삭제는 일반 큐에서의 삽입 및 삭제와 동일하다.

// 삽입
pq.add(1);
pq.add(2);
pq.add(3);
pq.offer(1);

// 삭제
pq.poll(); // 첫 번째 값을 반환하고 없다면 null return
pq.remove(); // 첫번째 값 제거
pq.clear(); // pq 초기화


관련 문제

풀이