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

adultlee·2023년 6월 7일
0

문제 링크

프로그래머스 문제

풀이

이중 우선순위 큐에 대한 구현을 하는 문제였습니다.
JS에서는 편리하게도 sort() 함수가 제공되어 어렵지 않게 해결할 수 있었습니다.

코드

function solution(operationss) {
    
    const operations = operationss.map(operation => 
            operation.split(" ")
    )
    let PQ = [];

    for(let i=0; i<operations.length; i++){
        if(operations[i][0] === 'I'){
            PQ.push(operations[i][1]);
            PQ.sort((a,b) => a-b)
        }
        else{
            if(operations[i][1] === '1'){
                PQ.pop();
            }else if(operations[i][1] === '-1'){
                PQ.shift();
            }
        }
    }
    
    if(PQ.length === 0) return [0,0];
    else return [Number(PQ[PQ.length-1]), Number(PQ[0])]

}

+) 의문점

다음의 방식은 push와 sort로 인해 기존의 배열을 통해서 구현한 우선순위 큐와도 같다.
하지만 class를 이용하여 만드는 경우에는 성능차이가 얼마나 나는지 궁금하다.
js 의 sort 또한 O(nlogn)이기 때문에 크게 늦지는 않을것같다.

0개의 댓글