
풀이
import heapq
def solution(operations):
    heap = []
    for i in operations:
        
        if i.startswith("I"):
            heapq.heappush(heap,int(i[2:]))
        else:
            
            if heap:
                
                if i[2:] == "1":
                    tmp = []
                    
                    while len(heap) > 1:
                        tmp.append(heapq.heappop(heap)) 
                    
                    heapq.heappop(heap)
                    
                    heap = tmp
                
                else:
                    heapq.heappop(heap)
    
    if heap:
        min_num = heapq.heappop(heap)
        max_num = min_num
        while heap:
            max_num = heapq.heappop(heap)
        return [max_num, min_num]
    return [0,0]
- operations 내의 원소들을 하나씩 처리
 
I로 시작한다면 heap에 삽입 
I로 시작하지 않고 heap에 값이 있다면
- 인덱스 [2:]값이 
1이라면 최댓값을 삭제
- 임시 배열을 선언하고, 
heap 맨 앞에서부터 하나씩 pop해서 임시 배열에 삽입한다. 
while문은 heap의 갯수가 1개 이상일 때까지 돈다 즉, 맨 마지막 1개를 남겨두고 반복문을 빠져나온다. 
heap의 맨 마지막 값을 pop해서 삭제하고, 임시배열을 heap으로 할당 
 
1이 아니라면 최솟값을 삭제 
 
heap이 비어져있지않다면
min_num을 할당하고 
heap이 비워질때까지 반복문을 돌면서 max_num에 할당 즉, 제일 마지막 값이 max_num에 할당됨. 
 
return [max_num, min_num]