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

Kim Yongbin·2023년 9월 7일
0

코딩테스트

목록 보기
47/162

Problem

Solution

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()을 이용하였다.

마지막 테스트 케이스를 통과하지 못하고 있는데 그 이유를 모르겠다.

Reference

profile
반박 시 여러분의 말이 맞습니다.

0개의 댓글