본문 바로가기

알고리즘 문제풀이

[프로그래머스] 고득점 키트 - 힙2

오늘 푼 문제

 

2. 이중 우선순위 큐/ Lv.3 / 시간 : 13분

programmers.co.kr/learn/courses/30/lessons/42628?language=javascript

 

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

 

programmers.co.kr

function solution(operations) {
    var answer = [];
    let temp = operations.reduce((acc,cur)=>{
        switch(cur){
            case "D 1":
                acc.shift();
                break;
            case "D -1":
                acc.pop();
                break;
            default:
                acc.push(cur.slice(2)*1);
                acc.sort((a,b)=>b-a);
                break;
        }
        return acc;
    },[]);

    answer = [temp.shift()||0,temp.pop()||0]

    return answer;
}

 

원래는 최댓값과 최솟값 찾기에 최적화된 우선순위 큐 자료구조를 구현해 풀어야 하는 것 같은데

기존의 sort메서드로도 별다른 성능 이슈 없이 테케를 다 통과해서 야매로 품

나중에 큐 다시 구현 필요