문제 링크

문제 풀이

두 가지를 할 수 있어야 한다.

  1. input으로 주어진 board 변수를 N x N 격자 판 전용 2차원 배열에 새로 배치하기.
  2. 바구니를 stack으로써 사용하고, 빼내는 조건을 구현하기

전체 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function solution(board, moves) {
let answer = 0;
const pan = new Array(board[0].length).fill([]).map((v) => []);
const outBox = [];

while (board.length > 0) {
const row = board.pop();
row.forEach((v, i) => {
if (v !== 0) pan[i].push(v);
});
}

while (moves.length > 0) {
const out = pan[moves.shift() - 1].pop();
if (!out) continue;
if (outBox.length < 1 || out !== outBox[outBox.length - 1])
outBox.push(out);
else {
outBox.pop();
answer += 2;
}
}

return answer;
}