`function solution(board, moves) {
var answer = 0;
const dolls={};
const queue=[];
let resultQueue=[];
for(const row of board){
row.map((value,i)=>{
if(value===0){
return
}
if(dolls[i+1]===undefined)
dolls[i+1]=[];
return dolls[i+1].push(value);
})
}
for(const move of moves){
if(insertDoll(dolls,queue,resultQueue,move,answer))
answer+=2;
}
return answer
}
function insertDoll(dolls,queue,resultQueue,move,answer){
if(dolls[move].length==0)
return
queue.push(dolls[move].shift());
if(checkQueue(queue))
return true
return false
}
function checkQueue(queue){
const checkQueue=[...queue];
const lastDoll=checkQueue.pop();
const secondLastDoll=checkQueue.pop();
if(lastDoll===secondLastDoll)
{
queue.pop();
queue.pop();
return true;
}
return false
}
스택과 큐를 이용한 문제이다.
생각하는 건 쉬웠다.
shift(),pop(),push()를 이용하자