목차
<내림차순 정렬>
1. Comparator 이용
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
- default : 오름차순
2. Comparator 구현
PriorityQueue<Integer> pq = new PriorityQueue<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
- Comparator 통해 compare 함수 오버라이드 (가정 : 선행 원소 < 후행 원소)
- 사용자 정의 정렬 기준을 설정할 때도 활용
3. 람다식 이용
PriorityQueue<Integer> pq = new PriorityQueue<>((o1, o2) -> o2 - o1);
4. 새 클래스 정의 후, Comparable 상속받아 직접 정의
// 노드 클래스 작성
class Node implements Comparable<Node>{
int node;
int cost;
Node(int node, int cost) {
this.node = node;
this.cost = cost;
}
@Override // cost 기준 오름차순 정렬
public int compareTo(Node n) {
return this.cost - n.cost;
}
}
PriorityQueue<Node> pq = new PriorityQueue<>();
- compareTo 함수 오버라이딩하여 재정의하면, 우선순위 큐 바로 사용 가능
(참고)
- 우선순위 큐, 클래스 / 메소드명
[Java] PriorityQueue(우선순위 큐) 클래스 사용법 & 예제 총정리
우선순위 큐(Priority Queue)란? 일반적으로 큐는 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First In First Out)의 구조 즉 먼저 들어온 데이터가 먼저 나가는 구조를 가집니다
coding-factory.tistory.com
- 우선순위 큐, 사용자 정의 정렬 기준 설정
[JAVA] Priority Queue(우선순위 큐) 우선순위 조건 변경하기
Priority Queue FIFO(First In First Out)인 일반적인 Queue와 다르게 Priority Queue는 우선순위가 높은 데이터가 먼저 Out된다. 기본적으로 오름차순 정렬을 하게 되는데 정렬 기준을 바꾸고 싶다면 람다식을 이
ynzu-dev.tistory.com
Java 정렬 기준과 PriorityQueue
Java에서 각종 정렬을 지원하는 Collection은 정렬 순서를 커스터마이징 할 수 있습니다. 기본값은 오름차순 정렬입니다. PriorityQueue는 우선순위큐로써 큐에 특정 값을 넣으면 지정한 로직에 따라 정
krksap.tistory.com
JAVA Priority Queue 우선순위 큐 사용법과 정렬 기준 정의
기본적으로 Integer 값 혹은 String 같은 타입을 담는 우선순위 큐는 아래와 같은 방식으로 사용하면 된다. import java.util.*; // Priority_Queue 오름차순 정의 PriorityQueue priorityQueueAsc = new PriorityQueue(); // Prio
eno1993.tistory.com
- 우선순위 큐는 아니지만.. Comparable 인터페이스를 이용한 사용자 정의 정렬 문제
[백준/JAVA] 1377번: 버블 소트
🔺 문제 1377번: 버블 소트 첫째 줄에 N이 주어진다. N은 500,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 A[1]부터 A[N]까지 하나씩 주어진다. A에 들어있는 수는 1,000,000보다 작거나 같은
bono039.tistory.com
(예제)
- 우선순위 큐, 오름차순/내림차순 정렬
1927번: 최소 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
11279번: 최대 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
- 우선순위 큐, 사용자 정의 정렬
11286번: 절댓값 힙
첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
'코테 > 개인적으로 헷갈리는 거' 카테고리의 다른 글
에라토스테네스의 체 (0) | 2023.06.15 |
---|---|
배열로 상하좌우 이동 표현 (0) | 2023.05.04 |
ArrayList<Integer>[] / ArrayList<ArrayList<Integer>> (0) | 2023.04.29 |
스택 vs 큐 (0) | 2023.04.10 |
[JAVA] char를 int로 변환 (- '0') (0) | 2023.04.03 |