개발/algorithm

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

zzi_on2 2022. 1. 3. 16:40

문제 링크 

https://programmers.co.kr/learn/courses/30/lessons/42628

 

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

 

programmers.co.kr

풀이 

  • deque 사용해서 품. 다른 사람들 풀이를 보니 heap을 사용하신 분들이 많았다. 나는 뭔가 deque가 익숙해서 그렇게 품 .. 
  • from collections import deque
    def solution(operations):
        answer = []
        que = deque()
        for i in operations:
            # 첫 글자 I 이면 
            if i[0] == 'I':
            # 숫자 추가 
              que.append(int(i[2:]))
            # 큐가 비어있지 않고 
            elif que:
                # 최댓값 삭제 
              if i[0] == 'D' and int(i[2:]) == 1:
                  que.remove(max(que))
                # 최솟값 삭제 
              else:
                  que.remove(min(que))
              
        if que:
            # 최댓값, 최솟값 반환 
          answer = [max(que),min(que)]
        else:
            # 큐가 비어있으므로 
          answer = [0,0]
        
        return answer