문제
코드
My answer
import sys
import heapq
input=sys.stdin.readline
n=int(input())
heap = []
for i in range(n):
tmp=int(input())
if(tmp!=0):
heapq.heappush(heap, (abs(tmp),tmp))
else:
if(heap==[]):
print(0)
else:
result=heapq.heappop(heap)
print(result[1])
Another answer
from heapq import*
h=[]
for i in[*open(0)][1:]:heappush(h,(abs(a),a))if(a:=int(i))else print(len(h)and heappop(h)[1])
풀이
저번에 최대힙을 작성했던 것처럼 튜플형태로 절댓값을 씌운입력값과 입력값원본을 최소힙으로 구현한뒤에 출력은 입력값원본을 하면 된다.
728x90
반응형