풀이
이 문제는 어렵게 생각할것 없이 그냥 우선순위큐를 사용하면 된다. 특이점으로는 오름차순이 아니라 내림차순으로 우선순위를 정해야하는데 나는 그냥 넣을때는 전부 - 부호를 붙혀서 넣었고 뺄때는 -부호를 다시 붙혀서 빼내었다.
import java.io.*;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
class Main {
static int N;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), "");
PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
int x;
int out;
N = Integer.parseInt(st.nextToken());
for(int i=0; i<N; i++){
st = new StringTokenizer(br.readLine(), "");
x = Integer.parseInt(st.nextToken());
if(x!=0){
pq.offer(-x);
}
else{
if(!pq.isEmpty())
System.out.println(-pq.poll());
else
System.out.println(0);
}
}
}
}
'백준' 카테고리의 다른 글
[백준]1937 욕심쟁이 판다 (JAVA) (0) | 2021.09.05 |
---|---|
[백준]11055 가장 큰 증가 부분 수열 (java) (0) | 2021.09.05 |
[백준] 7562 나이트의 이동 (JAVA) (0) | 2021.09.01 |
[백준] 1182 부분수열의 합 (JAVA) (0) | 2021.09.01 |
[백준] 9465 스티커 (JAVA) (0) | 2021.09.01 |