<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) # 음수로 추가해 최대 힙처럼 구현