[JS] 프로그래머스 이중우선순위큐 풀이 (lv 3)

김현수·2023년 11월 28일
0

cdt

목록 보기
28/51


🖋️ 이중 우선 순위 큐 풀이

@ 이중 우선순위 큐

  • 다음 연산을 할 수 있는 자료구조
명령어	수신 탑(높이)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
I 숫자   큐에 주어진 숫자를 삽입
D 1    	큐에서 최댓값을 삭제
D -1	큐에서 최솟값을 삭제 
  • 이중 우선순위 큐가 할 연산 operations

  • 모든 연산을 처리한 후
    큐가 비어있으면 [0,0]
    비어있지 않으면 [최댓값, 최솟값]

function solution(operations) {
    const heap = [];
    
    operations.forEach(op => {
        const [_op, num] = op.split(' ')
        if(_op === 'I') {	
            heap.push(+num)
        } else {	
            if(!heap.length) return;
            const findValue = (+num > 0 ? Math.max : Math.min)(...heap);
            const delIdx = heap.indexOf(findValue);
            heap.splice(delIdx, 1);
        }
    })
    
    return heap.length ? [Math.max(...heap), Math.min(...heap)] : [0, 0];
}
profile
일단 한다

0개의 댓글