본문 바로가기

알고리즘/문제 풀이

99클럽 코테 스터디 9일차 TIL + 백준 1927 최소힙 java

1. 문제 설명

문제 링크

2. 접근 방식

이건 뭐 Priority Queue 쓸 줄 아냐고 묻는 문제였다.

  1. PQ를 만든다. (default로 오름차순 정렬이니 건들일 것이 없다.)
  2. 문제에서 제공하는 Order에 따른다. (0이면 출력, 나머지면 저장)

3. 코드 분석

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));
        PriorityQueue<Integer> pq = new PriorityQueue<>();
        StringBuilder sb          = new StringBuilder();
        int N = Integer.parseInt(br.readLine());
        for (int i = 0; i < N; i++) {
            int now =Integer.parseInt(br.readLine());
            switch (now){
                case 0: {
                    if(pq.isEmpty()) sb.append(0).append("\n");
                    else sb.append(pq.poll()).append("\n");
                    break;
                }
                default:pq.add(now);
            }
        }
        System.out.println(sb);
    }
}