#Heap #PriorityQueue
백준 실버3) 크리스마스 선물
우선순위 큐를 사용하여 문제를 해결했다.
우선순위 큐는 기본적으로 우선순위가 큰 것(작은 값)을 먼저 반환하는데 -> 오름차순
Collections.reverseOrder()
를 생성자 인자로 주어 그 반대로 정렬되도록 했다. -> 내림차순
ez했다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Queue<Integer> q = new PriorityQueue<>(Collections.reverseOrder());
StringBuilder sb = new StringBuilder();
// 아이들과 거점지를 방문한 횟수 n
int n = Integer.parseInt(br.readLine());
for(int i=0; i<n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
// 거점지에서 a개의 선물을 충전
int a = Integer.parseInt(st.nextToken());
if (a == 0) { // 아이들을 만남
if (q.isEmpty()) {
sb.append(-1).append("\n");
} else {
sb.append(q.poll()).append("\n");
}
} else { // 선물 충전
for(int j=0; j<a; j++) {
q.add(Integer.parseInt(st.nextToken()));
}
}
}
System.out.print(sb);
br.close();
}
}