[99클럽 코테 스터디 19일차 TIL] 백준 1927 최소 힙

말하는 감자·2024년 11월 15일
0
post-thumbnail

99클럽 코테 스터디 19일차 TIL

💙 JAVA 비기너

📌 오늘의 학습 키워드

📌 공부한 내용

📍 오늘의 문제

📍 작성 코드

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

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));

        PriorityQueue<Integer> minHeap = new PriorityQueue<>();

        int N = Integer.parseInt(br.readLine());
        
        for(int i=0; i<N; i++) {
        	int x = Integer.parseInt(br.readLine());
        	
        	if(x == 0) bw.write((minHeap.isEmpty()) ? "0\n" : minHeap.poll() + "\n");
        	else minHeap.add(x);
        }


        bw.flush();

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

📌 오늘의 회고

힙을 사용하는 첫번째 문제라서 그런가 아주 단순했다.

PriorityQueue minHeap = new PriorityQueue<>();로 최소 힙을 생성해주고 입력 받는 정수 x가 0이 아니라면 minHeap에 넣어주고 0이라면 minHeap이 비었을 땐 0을, 아니라면 최소값을 반환하는 PriorityQueue.poll()을 해주어 출력한 후 삭제해준다.

스택, 큐, 힙의 함수가 비슷해서 그냥 어떤 자료구조를 사용하느냐를 결정하면 추가적으로 알아볼 필요가 없어서 편리하고 좋은 것 같다.

profile
나는 말하는 감자다

0개의 댓글