package backjun.L우선순위큐;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.PriorityQueue;
import java.util.Collections;
public class 최대힙 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
PriorityQueue<Integer> q = new PriorityQueue<>(Collections.reverseOrder());
StringBuilder sb = new StringBuilder();
int n = sc.nextInt();
for(int i=0;i<n;i++){
int t = sc.nextInt();
if(t==0){
if(q.size() == 0)
sb.append(0 + " ");
else
sb.append(q.poll() + " ");
}
else
q.add(t);
}
sc.close();
// System.out.println("----");
StringTokenizer st = new StringTokenizer(sb.toString(), " ");
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}
}
}
우선순위 큐를 사용하면 쉽게 해결할 수 있는 문제
오랜만에 Java의 Heap 자료구조인 PriorityQueue를 사용했다. 다행히 안까먹고 잘 사용했다. 특히 Collections.reverseOrder를 잊지 않은 점 칭찬한다.