코딩테스트
[JS] 2019 카카오 개발자 겨울 인턴십 > 크레인 인형뽑기 게임
차차한
2022. 9. 6. 15:40
드디어 풀어낸 인형뽑기 게임~!!!!!
막상 풀어보니까 엄청 어려운 문제는 아니었지만 문제 자체를 이해하는 거가 헷갈렸던..ㅠㅠ
function solution(board, moves) {
var arr = [];
var answer = 0;
for(var j = 0; j < moves.length;j++){
for(var i = 0; i < board.length;i++){
if(board[i][moves[j]-1] != 0){
arr.push(board[i][moves[j]-1]);
board[i][moves[j]-1] = 0;
if(arr[arr.length-2] == arr[arr.length-1]){
arr.pop();
arr.pop();
answer += 2;
}
break;
}
}
}
return answer;
}
세로 열에 대해서 0이 아닌 숫자가 있을 때 그 수를 배열(스택)에 담아줘야 한다.
그래서 바깥 for문은 moves의 길이만큼 돌리고, 안에 for문은 board의 길이만큼 돌려서
board[i][moves[j]-1]가 [0,0][1,0][2,0]...처럼 반복되도록 했다.
0이 아닌 숫자만 가져가야 해서 if 조건문을 달아줬고 바구니 배열로 가져간 숫자는 0으로 만들어줬다.
arr에 값이 담겨있을 때 배열의 마지막 값과 그 전의 값이 동일할 때에 두 값을 모두 pop으로 제거해주고 2개의 숫자가 사라졌기 때문에 +2를 해준다.
하나의 숫자에 대해서만 이러한 과정이 적용되기 때문에 break를 걸어준다
