



내가 생각했을때 문제에서 원하는부분
배열에 자연수 x를 넣는다.
배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다.
내가 이 문제를 보고 생각해본 부분
PriorityQueue를 사용해서 최소 힙을 구현했다.
offer() 메서드를 사용하여 새로운 원소를 삽입했다.
poll() 메서드를 사용하여 최소 원소를 반환하고 제거했다.
sEmpty() 메서드로 힙이 비어있는지 확인했다.
코드로 구현
package baekjoon.baekjoon_19;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
// 백준 1927번 문제
public class Main665 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
for(int i = 0; i < N; i++) {
int x = Integer.parseInt(br.readLine());
if(x == 0) {
if(minHeap.isEmpty()) {
System.out.println(0);
} else {
int min = minHeap.poll();
System.out.println(min);
}
} else {
minHeap.offer(x);
}
}
br.close();
}
}

오늘은 PriorityQueue을 사용해서 최소 힙을 구하는 문제를 풀었다. 자료구조에서 나오는 부분이였고 어렵지 않게 구현할 수 있었다. 조금더 공부를해서 다음에는 구현할때 다른 방법으로 사용해서 구현해보고싶다.