백준 / 11279 / 최대 힙 / java

맹민재·2023년 5월 31일
0

Java

목록 보기
20/32
package backjun.L우선순위큐;

import java.util.Scanner;
import java.util.StringTokenizer;
import java.util.PriorityQueue;
import java.util.Collections;

public class 최대힙 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        PriorityQueue<Integer> q = new PriorityQueue<>(Collections.reverseOrder());
        StringBuilder sb = new StringBuilder();
        int n = sc.nextInt();
        for(int i=0;i<n;i++){
            int t = sc.nextInt();

            if(t==0){
                if(q.size() == 0)
                    sb.append(0 + " ");
                else
                    sb.append(q.poll() + " ");
            }
            else
                q.add(t);
        }
        sc.close();
        // System.out.println("----");
        StringTokenizer st = new StringTokenizer(sb.toString(), " ");
        while(st.hasMoreTokens()){
            System.out.println(st.nextToken());
        }
    }
}

우선순위 큐를 사용하면 쉽게 해결할 수 있는 문제


오랜만에 Java의 Heap 자료구조인 PriorityQueue를 사용했다. 다행히 안까먹고 잘 사용했다. 특히 Collections.reverseOrder를 잊지 않은 점 칭찬한다.

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글