코딩 테스트

(Java) 백준 11279 - 최대 힙

로승리 2022. 6. 4. 03:21

우선순위 큐를 만들고 내림차순으로 정렬해주면 된다.

저번에 풀었던 최소 힙이랑 비슷한 문제였다.


최종 코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        // 우선순위 큐 내림차순 정렬
        PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < n; i++) {
            int v = Integer.parseInt(br.readLine());
            if(v != 0) {
                pq.offer(v);
            } else {
                if(pq.size() == 0) {
                    sb.append(0).append("\n");
                } else {
                    sb.append(pq.peek()).append("\n");
                    pq.poll();
                }
            }
        }
        System.out.println(sb);
    }
}