코테

프로그래머스) 이중우선순위큐 (js)

devgenie 2024. 7. 3. 16:14

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

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


입력받은 배열의 값에 따라 결과 배열에 값을 추가하거나, 최대 / 최소값을 제거한다.
결과 배열의 최대 / 최소값을 리턴하거나, 결과 배열에 적당한 값이 없는 경우 [0, 0] 을 리턴한다.

function solution(arr) {
    var answer = [];
    let queue = [];
    for (const x of arr){
        if(x[0] === 'I'){
            queue.push(Number(x.split(' ')[1]));
            queue.sort((a, b) => a - b);
        } else if (x[0] === 'D'){
            if (x.split(' ')[1] === '1'){
                queue.pop();
            } else if (x.split(' ')[1] === '-1'){
                queue.shift();
            }
        }
    }
    answer.push(queue[queue.length - 1] || 0);
    answer.push(queue[0] || 0);
    
    return answer;
}