우선순위 큐 (PriorityQueue)

형기브·2023년 10월 18일
0

JAVA

목록 보기
6/6

우선순위큐?

일반 큐와는 달리 자동정렬되는 ArrayList라고 느꼈다.

우선순위 큐를 모르고 리스트를 사용해 문제를 풀긴했지만.
새로운 값이 들어올 때마다 정렬하도록 하여서 일부 테스트케이스에서
시간이 오래 걸렸다.

다른사람들은 우선순위 큐로 간단하게 푼 것을 보고 놀랐다.

  1. 높은 우선순위의 요소를 먼저 꺼내서 처리할 때 쓴다.
  2. 내부 로직은 힙정렬을 사용하며 완전 이진 트리로 구성된다.
  3. 따라서 시간복잡도는 O(NlogN) 이다.

사용법

//디폴트는 최소힙, 생성
PriorityQueue<타입> pq = new PriorityQueue<>();

//역순
PriorityQueue<타입> pq = new PriorityQueue<>(Collections.reverseOrder());
//값 추가
pq.add();

//우선순위 요소 삭제
pq.poll();

//특정 값 삭제
pq.remove();

//전부 삭제
pq.clear();

//우선순위인 값 보기
pq.peek();

이 정도만 알아도 사용하는데 큰 문제는 없을 듯 하다.

profile
Slow but Steady

0개의 댓글