본문 바로가기

알고리즘

백준 1927번 | 최소 힙 문제 풀이 (Java)

문제

 

제출 코드

import java.util.*;
import java.io.*;

public class Main {

    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(br.readLine()) ;
        PriorityQueue<Integer> maxHeap = new PriorityQueue<>();
        StringBuilder sb = new StringBuilder();
        
        while(N-- > 0) {
            int value = Integer.parseInt(br.readLine()) ;
            
            if(value == 0) {
            	sb.append(maxHeap.isEmpty() ? "0" : maxHeap.poll()).append("\n");
            } else {
            	maxHeap.offer(value);
            }
        }
        
        br.close();
        bw.write(sb.toString());
        bw.flush();
        bw.close();

    }

}

 

 

문제 의도

- 우선큐의 기본 동작 이해

 

문제 출처