문제풀이/기타

[파이썬] [힙] Pro 이중우선순위큐

승무_ 2022. 2. 13. 17:10

문제

https://programmers.co.kr/learn/courses/30/lessons/42628?language=python3 

 

코딩테스트 연습 - 이중우선순위큐

 

programmers.co.kr

 

코드

import heapq

def solution(operations):
    min=[]
    max=[]
    for i in operations:
        print(min,max)
        j,k=i.split()
        if j=="I":
            heapq.heappush(min,int(k))
            heapq.heappush(max,-int(k))
        if len(min)>0:
            if j=="D":
                if k=="1":
                    temp=-1*heapq.heappop(max)
                    min.remove(temp)
                if k=="-1":
                    temp=heapq.heappop(min)
                    max.remove(-temp)
    result=[]
    if len(min)==0:
        result=[0,0]
    else:
        result.append(-1*heapq.heappop(max))
        result.append(heapq.heappop(min))
    return result