728x90
https://www.acmicpc.net/problem/1927
1927번: 최소 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
풀이)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
public class Main_BJ_1927_최소힙 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
PriorityQueue<Integer> pq = new PriorityQueue<>();
for(int i=0; i<n; i++){
int num = Integer.parseInt(br.readLine());
if(num == 0){
if(pq.isEmpty())
System.out.println(0);
else
System.out.println(pq.poll());
} else {
pq.offer(num);
}
}//for
}//main
}
자료구조를 공부할 때 힙이 우선순위 큐로 구현된다는 사실을 복습할 수 있는 문제.
priority queue 사용법 다시 익혀놓자!
728x90
'코테 > 백준' 카테고리의 다른 글
백준 2630 색종이 만들기(JAVA) (0) | 2023.01.19 |
---|---|
백준 11279 최대 힙(JAVA) (0) | 2023.01.18 |
백준 1620 나는야 포켓몬 마스터 이다솜(JAVA) (1) | 2023.01.17 |
백준 1931 회의실 배정(JAVA) (0) | 2023.01.16 |
백준 1003 피보나치 함수(JAVA) (0) | 2023.01.15 |