🖋️ 이중 우선 순위 큐 풀이
@ 이중 우선순위 큐
명령어 수신 탑(높이)
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
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];
}