[프로그래머스] 이중우선순위 큐

yewon Lee·2023년 6월 5일
0


😎코딩테스트 연습>힙(Heap)>이중우선순위큐


📘 문제풀이

max_heap과 min_heap 두개를 만들어서 각각 뺌

import heapq
def solution(operations):
    min_heap = []
    max_heap = []
    
    while len(operations) != 0:
        s = operations.pop(0)
        a, n = s.split()
        n = int(n)
        
        if a == "I":
            heapq.heappush(min_heap, n)
            heapq.heappush(max_heap, -n)

        else:
            if len(min_heap) != 0: 
                if n == 1:
                    max_value = heapq.heappop(max_heap)
                    min_heap.remove(max_value*(-1))
                else:
                    min_value = heapq.heappop(min_heap)
                    max_heap.remove(min_value*(-1))
    
    if len(min_heap) == 0:
        return [0,0]

    return [max(min_heap),min(min_heap)]
profile
시작

0개의 댓글