importheapqimportsysfromtypingimportListdefsolution(nums:List[int])->List[int]:answer=[]h=[]forxinnums:# x가 0이라면 배열에서 절댓값이 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우
ifx==0:ifh:# [1] -> (절댓값, 원래값)에서 (원래값)
answer.append(heapq.heappop(h)[1])continue# 절댓값이 가장 작은 값을 출력하라고 한 경우
answer.append(0)continue# (절댓값, 원래값) -> (절대값) 기준으로 정렬
heapq.heappush(h,(abs(x),x))returnanswerN=int(sys.stdin.readline().rstrip())array=[]for_inrange(N):array.append(int(sys.stdin.readline().rstrip()))print(*solution(array),sep='\n')
Leave a comment