열렬히.뛰기

11286번: 절댓값 힙

알고리즘: 실전 > 백준 단계별로 풀기: 10번 ~ 25번 > 11286번: 절댓값 힙

문제

아이디어

  • 역시 최댓값 힙처럼 힙에 넣을 때 집합을 이용한다.
  • 집합에 들어가는 요소 : 절댓값, 그냥 값.
    • 이러면 절댓값으로 정리.

코드

python
# 절댓값 힙
import sys
input = sys.stdin.readline
from heapq import *

heap = []
for _ in range(int(input())):
    x = int(input())
    if x == 0:
        if len(heap) == 0:
            print(0)
        else:
            print(heappop(heap)[1])
    else:
        heappush(heap, (abs(x), x))