코테 공부
[우선순위큐]절댓값 힙(백준 11286번, 자바)
DaEun_
2023. 1. 26. 09:19
11286번: 절댓값 힙
첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
PriorityQueue<Integer> pq=new PriorityQueue<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
// TODO Auto-generated method stub
if(Math.abs(o1)==Math.abs(o2)) {
return o1-o2;
}
else return Math.abs(o1)-Math.abs(o2);
}
});
for(int i=0;i<N;i++) {
int n=sc.nextInt();
if(n==0) printNum(pq);
else pq.add(n);
}
}
static void printNum(PriorityQueue<Integer> pq) {
if(pq.isEmpty()) System.out.println(0);
else System.out.println(pq.poll());
}
}