PriorityQueue를 사용할때 입력되는 정수에 대해 해당하는 Map의 값에 따라 정렬한 후
Map의 값이 같을 경우엔 입력 값에 따라 정렬하고 싶을 때 아래와 같이 구현하면 된다.
코드
PriorityQueue<Integer> pq = new PriorityQueue<>((a, b) -> {
if (map.get(a) > map.get(b)) {
return 1;
} else if (map.get(a) < map.get(b)) { // 여기까지 map의 값에 따라 정렬
return -1;
} else { // 같으면 입력 값을 비교
return a - b;
}
});
위 예시는 오름차순 정렬 코드입니다.
'자료구조 & 알고리즘' 카테고리의 다른 글
XOR을 이용한 유일한 숫자 찾기 (0) | 2021.06.10 |
---|---|
10진수를 2진수로 바꿨을때 1의 갯수 가져오는 방법 (0) | 2021.05.22 |
PriorityQueue MaxHeap, MinHeap 선언 방법 (0) | 2021.05.05 |
이진수 형식의 문자열을 int형으로 변환하기 (0) | 2021.05.04 |
LeetCode 문제 풀기 저장소 (0) | 2021.04.28 |
댓글