카카오톡 코딩테스트 - 인형뽑기
배열을 회전한 다음에 세로로 한 줄로 만들고 스택처럼 문제를 풀어냈다. 하면서 먼가 코드가 깔끔하지 않은 느낌이라 마음에 걸렸는데… 다음엔 더 생각해봐야겠다.
function solution(board, moves) {
let a = [];
let res = [];
let cont = 0;
for (let i = 0; i < board.length; i++) {
var arr = [];
for (let j = 0; j < board.length; j++) {
arr.push(board[j][i]);
}
a.push(arr.reverse());
}
console.log(a);
for (let i = 0; i < moves.length; i++) {
let b = a[moves[i] - 1].filter((num) => num !== 0).pop();
if (b !== undefined) {
if (res[res.length - 1] === b) {
res.pop();
cont += 2;
console.log(res);
} else {
res.push(b);
console.log(res);
}
a[moves[i] - 1].splice(a[moves[i] - 1].lastIndexOf(b), 1, 0);
}
}
console.log(cont);
return cont;
}
console.log(
solution(
[
[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],
],
[1, 5, 3, 5, 1, 2, 1, 4]
)
);