PR-クレーン型綱引きゲーム


質問する


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つの要素を削除し、カウントを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;
    }