https://programmers.co.kr/learn/courses/30/lessons/64061?language=javascript
function solution(board, moves) {
let answer = 0;
const boardStacks = Array.from({length: board.length}, () => []);
const basketStack = [];
for (let i = board.length-1; i > -1 ; i-- ) {
for (let j = 0; j < board.length; j++) {
if (board[i][j] === 0) continue;
boardStacks[j].push(board[i][j]);
}
}
for (const move of moves) {
if (boardStacks[move-1].length === 0) continue;
const currItem = boardStacks[move-1].pop();
if (basketStack[basketStack.length-1] === currItem) {
basketStack.pop();
answer += 2;
} else {
basketStack.push(currItem);
}
}
return answer;
}
문제 자체는 크게 어렵지 않았던 것 같다. board를 스택의 배열로 바꿔준 후에 moves의 숫자에 해당하는 스택에서 하나씩 pop을 하면서 바구니에서 확인하는 형식으로 진행했다.
풀이가 끝났을 때 틀리는 부분이 있었는데 board의 길이가 5로 고정인 줄 알아서 런타임 에러가 계속 발생하는 문제가 있었다. 문제를 다시 읽고 해결을 했다.