board = [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]];
moves = [1,5,3,5,1,2,1,4];
크레인을 작동시킨 위치는 moves
board 안 이차원 배열의 0이 아닌 숫자를 moves 순서대로 꺼내야 한다.
이후, basket 안에 쌓는다.
동일한 숫자가 연속해서 basket안에 두개 들어가면 두 숫자는 터진다
터트려져 사라진 인형의 개수를 리턴
function solution(board, moves) {
let basket = [];
let result = 0;
let boardCopy = board.map(v => [...v]);
for (let i = 0; i < moves.length; i++) {
let move = moves[i] - 1;//크레인을 움직인다.
for (let j = 0; j < boardCopy.length; j++) {
let doll = boardCopy[j][move];//크레인이 잡을 인형
if (doll) {//인형이 있으면
boardCopy[j][move] = 0;//board에 인형을 꺼내준다.
let basketDoll = basket[basket.length - 1];
if (basket.length !== 0 && basketDoll === doll) {
result+=2;
basket.pop();
} else {
//basket안에 아무것도 없거나 basket 내에 일치한 돌이 없을 경우 바스켓에 인형을 넣어준다.
basket.push(doll);
}
//인형을 꺼내서 넣어주었으니, 다시 크레인을 움직인다.
break;
}
}
}
return result;
}