23-09-20 TIL

more·2023년 9월 21일

백준 1927 (최소힙) - Java

import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.PriorityQueue;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        // 숫자 갯수
        int N = Integer.parseInt(br.readLine());

        // 사용할 최소힙
        PriorityQueue<Integer> minQueue = new PriorityQueue();

        for (int i = 0; i < N; i++) {
            // 입력 숫자
            int num = Integer.parseInt(br.readLine());
            if (num > 0) {
                // 입력 값이 0 초과면 최소힙에 삽입
                minQueue.add(num);
            }
            else {
                // 입력 값이 0이면
                if (minQueue.isEmpty()) {
                    // 힙이 비어있으면 0 출력
                    bw.write(0 + "\n");
                }
                else {
                    // 힙이 비어있지 않으면 제일 작은 숫자 빼면서 출력
                    bw.write(minQueue.poll() + "\n");
                }
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }

}

0개의 댓글