반응형
문제
설명
원래는 힙 2개를 사용해서 푸는 문제이다.
하지만 프로그래머스에서는 배열 1개로 풀어도 통과된다
다음에는 힙을 직접 구현해서 풀어보고싶다.
코드
function solution(operations) {
let queue = [];
for(let operation of operations){
if (operation ==='D 1'){
let max = Math.max(...queue);
let deleted = false;
let newQueue = [];
for(let q of queue){
if(q===max){
if(!deleted){
deleted = true;
}
}else{
newQueue.push(q);
}
}
queue = newQueue;
}
else if(operation === 'D -1'){
let min = Math.min(...queue);
let deleted = false;
let newQueue = [];
for(let q of queue){
if(q===min){
if(!deleted){
deleted = true;
}
}else{
newQueue.push(q);
}
}
queue = newQueue;
}
else{
let number = operation.split(" ")[1];
queue.push(parseInt(number));
}
}
return queue.length!==0?[Math.max(...queue),Math.min(...queue)]:[0,0];