def solution(operations):
import heapq
heap = []
max_heap =[]
for i in operations:
i = i.split()
if i[0] == 'I':
heapq.heappush(heap, int(i[1]))
heapq.heappush(max_heap, (int(i[1])*-1, int(i[1])))
else:
if not heap:
pass
elif i[1] == '1':
num = max(heap)
heap.remove(num)
heapq.heappop(max_heap)
else:
num = max(max_heap)
max_heap.remove(num)
heapq.heappop(heap)
if heap:
return [heapq.heappop(max_heap)[1], heapq.heappop(heap)]
else:
return [0,0]
heap 자료구조는 최소힙을 기본으로 구성되어있기 때문에 큰 수를 빼는 것을 고려하여 -1을 곱한 값을 우선순위로 저장할 max_heap도 heap과 함께 준비한다.