๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ฝ”๋”ฉํ…Œ์ŠคํŠธ

[๋ฐฑ์ค€, 11286๋ฒˆ] ์ ˆ๋Œ“๊ฐ’ ํž™ ๊ตฌํ˜„ํ•˜๊ธฐ (JAVA)

by ์šฐ์ฃผ๋ฌผ๊ณ ๊ธฐ 2025. 7. 18.
๋ฐ˜์‘ํ˜•

 

์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์•Œ์•„์•ผ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ.

 

์ž๋ฃŒ๊ตฌ์กฐ ์˜ค๋žœ๋งŒ์— ๋ณด๋‹ค๋ณด๋‹ˆ๊นŒ ๊นŒ๋จน์–ด์„œ ์šฐ์„ ์ˆœ์œ„ ํ ์žฌํ™œ์น˜๋ฃŒํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ ธ๋‹ค....

์–ด๋–ค์‹์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ค„์ง€ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•(?) ํ•œ ๋‹ค์Œ for๋ฌธ ๋Œ๋ฉด์„œ ์กฐ๊ฑด์— ๋งž๊ฒŒ

์ถœ๋ ฅํ• ๊ฑด ํ•˜๊ณ , ๋„ฃ์„๊ฑด ๋„ฃ๊ณ ~~

public class ์ ˆ๋Œ“๊ฐ’ํž™ {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(bf.readLine());

        // ์šฐ์„ ์ˆœ์œ„ ํ ์ •๋ ฌ ๊ธฐ์ค€
        PriorityQueue<Integer> myQueue = new PriorityQueue<>((o1, o2) -> {
            int first_abs = Math.abs(o1);
            int second_abs = Math.abs(o2);

            if (first_abs == second_abs)  // ์ ˆ๋Œ“๊ฐ’ ๊ฐ™์œผ๋ฉด ์ž‘์€ ์ˆซ์ž์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ์คŒ.
                return o1 > o2 ? 1 : -1;
            else
                return first_abs - second_abs;
        });

        for (int i = 0; i < N; i++) {
            int request = Integer.parseInt(bf.readLine());
            if (request == 0) {
                if (myQueue.isEmpty())
                    System.out.println("0");
                else
                    System.out.println(myQueue.poll());  // ์ ˆ๋Œ“๊ฐ’ ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜ ์ถœ๋ ฅ ๋ฐ ์ œ๊ฑฐ
            } else {
                myQueue.add(request);
            }
        }
    }
}
๋ฐ˜์‘ํ˜•