카테고리 없음

[백준 11286 파이썬]

우석SONG 2022. 1. 13. 06:15

절대힙을 구현하는 문제이다.

파이썬의 heapq를 import해서 구현했다.

최소힙을 구현하는 방식과 같지만 heapq.heappush를 할 때 abs(value)와 value를 튜플 형태로 넣어준다. 

시간 초과가 뜬다면 input() 대신 sys를 import 하고 sys.stdin.readline() 를 쓰면된다. 

import heapq,sys
min_heap=[]

n=int(input())
data=[int(sys.stdin.readline()) for _ in range(n)]
abs_heap=[]
for value in data:
  if value ==0 :
    if abs_heap==[] :
      print(0)
    else:
      print(heapq.heappop(abs_heap)[1])
  else : 
    heapq.heappush(abs_heap,(abs(value),value))