탐색문제를 풀다가 우선순위큐를 이용하는 문제들을 만나게 되어서 다음에 만났을 떄는 검색없이 풀고싶어 정리를 하게 되었다.
PriorityQueue<Integer> queue = new PriorityQueue<>();
반대의 순서로 정렬하려면 다음과 같이 함수를 사용해주면 된다.
PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
//BOJ 6087 풀 때 사용한 class
class Mirror implements Comparable<Mirror>{
int x, y, cnt, dir;
Mirror(int x, int y, int cnt, int dir) {
this.x = x;
this.y = y;
this.cnt = cnt;
this.dir = dir;
}
@Override
public int compareTo(Mirror m) {
return this.cnt - m.cnt;
}
}
해당객체.some - 비교객체.some => 오름차순
비교객체.some - 해당객체.some => 내림차순