널리 잘 알려진 자료구조 중 최소 힙이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오.
(https://www.acmicpc.net/problem/1927)
큐는 써봤지만 Priority Queue는 처음 써본다. 뭔가 BigInteger 처음 봤을 때 느낌이랄까 🙄
https://www.acmicpc.net/problem/1271 (백준 BigInteger문제.. long 썼는데 런타임 에러떴을때 당황스러웠다)
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> pq = new PriorityQueue<>();
int N = Integer.parseInt(br.readLine());
for(int i=0;i<N;i++) {
int num = Integer.parseInt(br.readLine());
if(num == 0) {
if(pq.isEmpty()) {
bw.write("0\n");
}
else {
bw.write(pq.poll()+"\n");
}
}
else {
pq.add(num);
}
}
bw.flush();
bw.close();
}
}
우선순위 큐에대한 개념만 알면 쉽게 풀 수 있는 문제였다. 솔직히 실버2까지는 아닌 것 같다...? 아마도..?
저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!