import heapq
def solution(operations):
answer = []
for operation in operations:
operator, operand = operation.split(" ")
operand = int(operand)
if operator == "I":
heapq.heappush(answer, operand)
else:
if len(answer) == 0:
continue
if operand == 1:
answer.pop()
heapq.heapify(answer)
else:
heapq.heappop(answer)
if len(answer) == 0:
return [0, 0]
else:
return [answer[-1], answer[0]]
heapq를 이용하여 진행하였다. 원소를 넣을 때는 heapq.heappush()
를 이용하였다. answer의 경우 오름차순으로 정렬되어 있기 때문에 최댓값은 answer의 맨 뒤에 있으므로 pop()
을 해주었다. 최솟값은 heapq.heappop()
을 이용하였다.
마지막 테스트 케이스를 통과하지 못하고 있는데 그 이유를 모르겠다.