// https://school.programmers.co.kr/learn/courses/30/lessons/64061
function solution(board, moves) {
const bucket = [];
let result = 0;
// board 인덱스별 board의 가로 위에서 아래로
// moves 배열 각 원소들의 값은 board의 index이며 해당하는 위치에 가장 위에 있는 인형을 가지고온다
for (const move of moves){
for(let i=0; i<board.length;i++){
// 배열이니깐 index -1
if(board[i][move-1]){
// 위에서 부터 시작이므로 해당하는 위치에 값이 존재하면 바구니에 push 하고 해당하는 위치 값을 0으로 변경
bucket.push(board[i][move-1])
board[i][move-1] = 0;
// 바구니에 2개 이상 쌓였을때 터트리기 시작 분기
if(bucket.length >= 2){
// 새로 추가된것과 이전값을 비교해 동일하면 제거 후 result값 증가
if(bucket[bucket.length-1] === bucket[bucket.length-2]){
bucket.splice(bucket.length-2, 2);
result = result + 2
}
}
// 가장 상단의 하나만 제거하기 때문에 제거후 반복문 종료
break;
}
}
}
return result
}
Comment