<aside> 👉🏿 문제 링크

</aside>

문제

문제 정리

<aside> 👉🏿 첫줄에 연산의 개수가 주어진다.

다음줄부터 연산의 개수만큼 입력값이 주어진다.

접근 방법

<aside> 👉🏿 heapq.heappush() 메소드 사용.

인자를 넘겨줄 때 음수로 만들어 최대힙과 비슷하게 구현했다.

heapq.heappop() 메소드 사용.

마찬가지로 결과값에 음수를 붙혀 다시 양수로 만들어 준다.

</aside>

코드 진행

import heapq
import sys

def input():
    return sys.stdin.readline()

n = int(input())

heap = list()           # 힙생성
for _ in range(n):      # n만큼 연산의 수 
    q = int(input())
    
    # 0일 경우 pop 실행
    if q == 0 :
        # heap 비어있을 경우 pop() 실행 시 오류가 생기므로 예외처리
        try :
            print(-heapq.heappop(heap)) # 음수를 붙혀 최대힙처럼 구현
        except IndexError:
            print(0)
            
    # 자연수일 경우 push 실행
    else :
        heapq.heappush(heap, -q) # 음수로 추가해 최대 힙처럼 구현