카카오톡 코딩테스트 - 인형뽑기

카카오톡 코딩테스트 - 인형뽑기

배열을 회전한 다음에 세로로 한 줄로 만들고 스택처럼 문제를 풀어냈다. 하면서 먼가 코드가 깔끔하지 않은 느낌이라 마음에 걸렸는데… 다음엔 더 생각해봐야겠다.

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]
  )
);