[BOJ 11286] 절댓값 힙
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
댓글남기기