function solution(board, moves) {
const stk = [];
let result = 0;
moves.forEach((c) => {
for (let i = 0; i < board[0].length; i += 1) {
if (board[i][c - 1]) {
stk.push(board[i][c - 1]);
board[i][c - 1] = 0;
break;
}
}
for (let i = 1; i < stk.length; i += 1) {
if (stk[i] === stk[i - 1]) {
stk.splice(i - 1, 2);
result += 2;
}
}
});
return result;
}
구현 로직
배열을 위에서 아래로 탐색하는 부분만 잘 작성하면 됩니다. 크레인이 움직인 구간(moves)의 값들을 하나씩 순회하면서 0이 아닌 수를 마주치는 경우 그 값을 빈 배열 stk에 넣어주고 stk을 탐색하여 현재 위치와 이전 위치의 수가 동일한 경우(같은 인형) 제거하고 카운트를 늘려주면 됩니다.