본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#107 백준 파이썬 [11286] 절댓값 힙

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

 

 

#Solution

#105, #106번에 다뤘던 힙 문제와 똑같다. 다만 heap을 tuple로 구성했을 때 맨 앞 숫자만 가지고 정렬하므로 앞은 abs(절대값) 내장 함수를 써주고 두 번째는 원래 수를 써줌으로써 절댓값 정렬을 할 수 있게 한다.

import sys
import heapq

numbers = int(input())
heap = []

for _ in range(numbers):
    num = int(sys.stdin.readline())
    if num != 0:
        heapq.heappush(heap, (abs(num), num))
    else:
        try:
            print(heapq.heappop(heap)[1])
        except:
            print(0)