나의 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
for (int i = 0; i < n; i++) {
int x = Integer.parseInt(br.readLine());
if (x == 0) {
if (pq.isEmpty()) {
System.out.println("0");
} else {
System.out.println(pq.poll());
}
} else {
pq.add(x);
}
}
}
}
이 문제는 Scanner쓰면 시간초과가 떠서 BufferedReader를 사용해야하고, 아래 부분만 변경됐다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());