오늘의 학습 키워드
https://www.acmicpc.net/problem/1927
- 완주하지 못
공부한 내용 본인의 언어로 정리하기
문제분석
최소힙을 이용해 주어진 입력값 중 최소값을 출력하는 문제이다.
자바에서 최소힙을 기본 구조로 가지는 우선순위큐를 알면 쉽게 접근할 수 있다.
코드
package backjoon.silver.lv2;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
public class B1927 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PriorityQueue<Integer> queue = new PriorityQueue<>();
int n = Integer.parseInt(br.readLine());
for (int i = 0; i < n; i++) {
int input = Integer.parseInt(br.readLine());
if (input == 0) {
if (queue.isEmpty()) {
System.out.println(0);
} else {
System.out.println(queue.poll());
}
} else {
queue.add(input);
}
}
}
}
우선순위큐는 기본적으로 최소힙을 바탕으로 동작한다. 그렇기 때문에 큐에 정수값을 삽입한 후 값을 뽑아낸다면 최소값으로 세팅이 되게 된다.
오늘의 회고
다음주 계획 세우기 및 항해99 역량평가 준비하자.
- 완주하지