PriorityQueue, Comparator를 사용하는 방법
-
- 아래 코드의 ? 부분에 Comparator를 사용한 PriorityQueue 선언 방법을 적어주세요.
public class Solution {
public static void main(String[] args) {
// 2번째 값을 기준으로 정렬해야 함
int[][] map = new int[][]{{1, 2}, {2, 1}, {3, 2}, {2, 4}};
PriorityQueue<int[]> pq = ?;
for (int[] m : map) {
pq.add(m);
}
}
}
-
- 아래 코드의 ? 부분에 Comparator를 사용한 PriorityQueue 선언 방법을 적어주세요.
public class Solution {
private static class Node {
int from, to, cost;
public Node(int from, int to, int cost) {
this.from = from;
this.to = to;
this.cost = cost;
}
}
public static void main(String[] args) {
PriorityQueue<Node> pq = ? ;
}
}
답 보기
-
- 아래 코드의 ? 부분에 Comparator를 사용한 PriorityQueue 선언 방법을 적어주세요.
public class Solution {
public static void main(String[] args) {
// 2번째 값을 기준으로 정렬해야 함
int[][] map = new int[][]{{1, 2}, {2, 1}, {3, 2}, {2, 4}};
// comparingDouble, comparingLong 도 존재
PriorityQueue<int[]> pq = new PriorityQueue<>(Comparator.comparingInt(o -> o[1]));
for (int[] m : map) {
pq.add(m);
}
}
}
-
- 아래 코드의 ? 부분에 Comparator를 사용한 PriorityQueue 선언 방법을 적어주세요.
public class Solution {
private static class Node {
int from, to, cost;
public Node(int from, int to, int cost) {
this.from = from;
this.to = to;
this.cost = cost;
}
}
public static void main(String[] args) {
PriorityQueue<Node> pq = new PriorityQueue<>(Comparator.comparing(node -> node.cost));
}
}