[백준] 11286 - 절댓값 힙

오규성·2025년 10월 11일

Priority Queue 인스턴스를 생성할 때, 초기화시 compareBy 로 절댓값과 값을 지정해주면 되는 문제이다.
Heap 을 직접 구현하는 경우 이를 응용하면 되고 이전 게시글들에 올렸으니 따로 올리지 않으려고 한다.

풀이

import java.util.PriorityQueue

fun `11286-절댓값 힙`(){
    val br = System.`in`.bufferedReader()
    val bw = System.out.bufferedWriter()
    val n = br.readLine().toInt()
    val stringBuilder = StringBuilder()
    /*
    절댓값 우선 적용, 절댓값이 같은 경우 값으로 정렬
    */
    val priorityQueue = PriorityQueue<Int>(compareBy ({ kotlin.math.abs(it) }, { it }))

    repeat(n){
        val num = br.readLine().toInt()

        if(num == 0){
            stringBuilder.appendLine(priorityQueue.poll() ?: 0)
        } else {
            priorityQueue.add(num)
        }
    }

    bw.write(stringBuilder.trim().toString())
    bw.flush()
    bw.close()
    br.close()
}
profile
안드로이드 개발자 Gyu 의 개발 블로그 !

0개의 댓글