문제 풀이/백준

[백준] 1927번. 최소 힙 (JAVA)

27200 2024. 2. 6. 21:44

https://www.acmicpc.net/problem/1927


문제


풀이

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

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        PriorityQueue<Integer> sortedNumbers = new PriorityQueue<>();

        for(int i = 0; i < n; i++){
            int x = Integer.parseInt(br.readLine());
            if(x == 0){
                if(sortedNumbers.isEmpty()){
                    System.out.println(0);
                }else{
                    System.out.println(sortedNumbers.poll());
                }
            }else{
                sortedNumbers.offer(x);
            }
        }

    }
}

 

숫자의 입력과 정렬을 동시에 진행하며 들어온 숫자가 0일 경우에만 큐의 상태를 확인하고 0을 출력해주거나 최소값을 출력해주면 된다.