IT/ps

백준 11286번 절대값 힙

u149_cinderella 2025. 2. 15. 23:00

 

힙을 쓰는데 힙요소를 2개씩 넣어주면 된다.

import sys
import heapq

n=int(sys.stdin.readline().rstrip())
q=[]
heapq.heapify(q)
for i in range(n):
    x=int(sys.stdin.readline().rstrip())

    if x==0:
        if len(q)==0:
            print(0)
            continue
        num=heapq.heappop(q)
        print(num[1])
    else:
        ab_x=x
        if x<0:
            ab_x=-x
        heapq.heappush(q,(ab_x,x))

파이썬 heapq자료구조는 자동으로 튜플 순서대로 비교된다.

다시말해 1번째 요소가 같다면 2번째 요소를 이용해 정렬한다는 소리이다.