백준 11286번

백준 11286번

-

좋아요

원본 : https://www.acmicpc.net/problem/11286

풀이

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Comparator; import java.util.PriorityQueue; public class Main { public static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); public static BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] args) throws Exception { int n = Integer.parseInt(reader.readLine()); PriorityQueue heap = new PriorityQueue(new Comparator() { @Override public int compare(Integer o1, Integer o2) { int abs1 = Math.abs(o1); int abs2 = Math.abs(o2); if (abs1 == abs2) { return o1 - o2; } else { return abs1 - abs2; } } }); for (int i = 0; i < n; i++) { int input = Integer.parseInt(reader.readLine()); if (input != 0) { heap.add(input); } else { Integer peek = heap.poll(); if (peek == null) { writer.write("0

"); } else { writer.write(peek + "

"); } } } writer.flush(); } }

from http://abc1q2w3e4r.tistory.com/209 by ccl(A) rewrite - 2021-11-08 10:02:03