최대 1 분 소요

Heap

[BOJ 11286] 절댓값 힙

문제

절대 힙

구조화

예제 시각화

해답

import heapq as hq
import sys
input = sys.stdin.readline
n=int(input())
cmd = []
abs_hq = []
hq.heapify(abs_hq)
for i in range(n):
    cmd.append(int(input()))
for i in cmd:
    if i==0:
        if len(abs_hq)==0: # empty case
            print(0)
        else:
            target = hq.heappop(abs_hq)  # root 노드 제거 
            print(target[1]) # 출력 +heapq 모듈은 비교 대상의 값이 복수일 경우 첫번 째 값이 같다면 그 다음 값을 기준으로 heapify 적용
            
    else:
        hq.heappush(abs_hq,(abs(i),i)) # 절대값 heapify

댓글남기기