새소식

항해 99 TIL

99클럽 코테 스터디 9일차 TIL [PriorityQueue]

  • -
 

- 오늘의 학습 키워드 : PriorityQueue

[문제 이름 : 최소 힙]

문제 url : https://www.acmicpc.net/problem/1927

내가 작성한 코드는 아래와 같다.

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

public class Main {
    static StringBuilder sb;
    static PriorityQueue<Integer> pq = new PriorityQueue<>();
    public static void main(String[] args) throws IOException {
        sb = new StringBuilder();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        for(int i=0; i<n; i++) {
            int num = Integer.parseInt(br.readLine());
            solution(num);
        }
        System.out.println(sb.toString());
    }
    static void solution(int num) {
        if(num == 0) {
            int returnNum = pq.isEmpty() ? 0 : pq.poll();
            sb.append(returnNum).append("\n");
        } else {
            pq.add(num);
        }
    }
}

 

최소 힙의 개념을 알고 있던 상태라, 문제가 어렵게 느껴지지는 않았다.

x에 0이 들어왔을 때, PriorityQueue가 비어있는지 여부에 따라 결과값을 다르게 출력해주었다.

여담으로, PriorityQueue의 순서를 사용자 정의로 바꾸는 방법에 대해 복습해보면 좋을 것 같다고 생각했다.

 

풀이 시간 : 10분

 

내일은 PriorityQueue의 정렬 순서를 원하는 형태로 구현할 수 있게 하는 방법을 찾아보고, 이를 숙련해보고자 한다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.