백준 11286 - 절댓값 힙
Updated:
Java
11286 번 - 절댓값 힙
문제
접근 방법
우선 순위 queue로 쉽게 해결하였다.
코드
import java.util.*;
import java.io.*;
public class Main {
static int n, result;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stk;
n = stoi(br.readLine());
PriorityQueue<Integer> pq = new PriorityQueue<>((o1, o2)->{
int a = Math.abs(o1);
int b = Math.abs(o2);
int comp = Integer.compare(a, b); // 절댓값 크기 비교
if(comp == 0) // 절댓값이 같으면, 그 수 크기 비교
return Integer.compare(o1, o2);
else
return comp;
});
int input;
while(n-- != 0) {
input = stoi(br.readLine());
if(input != 0)
pq.add(input);
else {
if(pq.isEmpty())
System.out.println(0);
else
System.out.println(pq.poll());
}
}
br.close();
}
static int stoi(String str) {
return Integer.parseInt(str);
}
}