PR - 크레인 인형뽑기 게임

Goody·2021년 3월 15일
0

알고리즘

목록 보기
68/122
post-custom-banner

문제

https://programmers.co.kr/learn/courses/30/lessons/64061


예시

boardmovesresult
[[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]4

풀이

  • 매개변수로 주어지는 moves 배열을 돌면서, 배열 내 원소를 board 의 인덱스 삼아 board의 원소를 삭제하고, 그 원소를 바구니 스택에 push 하면 된다.
  • 바구니 스택에 숫자가 들어올 때 마다 바구니가 비었는지 먼저 검사하고, 바구니 내 인접한 원소가 같은 숫자면 두 원소를 없애고 카운트를 2 올린다.

코드

function solution(board, moves) {
     let answer = 0;
    const basket = [];

    moves.forEach((move) => {
        
        for(let i = 0; i < board.length; i++) {
            if(board[i][move-1] !== 0){
                basket.push(board[i][move-1]);
                if(basket.length !== 0 && basket[basket.length-1] === basket[basket.length-2]) {
                    basket.pop();
                    basket.pop();
                    answer+=2;
                }
                board[i][move-1] = 0;
                break;
            } 
        }
    })
    return answer;
}
post-custom-banner

0개의 댓글