var a=[『プログラマー』『クレーン兄ゲーム』;


に質問


コードテスト練習>2019 KACA開発者冬季実習>クレーン型選抜ゲーム

ゲーム画面上の格子状態の2次元配列板と人形を挟むために、起動クレーンの位置を含む配列動作をパラメータとして指定した場合、solution関数を完了し、クレーンをすべて起動させ、爆発して消えた人形の個数を返します.

👨‍🔧 に近づく


ステップ
  • の要素を順番に読みます.
  • 要素に相当するプレート値がスタックに蓄積される.
  • スタックに連続的に堆積した要素を除去した後、+=2と答える.
  • 💻 コード#コード#

    const checkSuccesive = (array) => {
        if(array.length > 1 && array[0] === array[1]){
            array.splice(0,2);
            return 1;
        }
        return 0;
    } // 요소가 연속적으로 존재하는지 안하는지 판단
    
    function solution(board, moves) {
      let answer = 0;
      let stack = [];
      let repeat1 = moves.length; 
      let repeat2 = board.length; // 반복 횟수 지정
    
        for(let i=0;i<repeat1;i++) {
            let move = moves[0]-1;
            moves.shift()
            
            for(let j=0;j<repeat2;j++){  
              if(board[j][move]!=0){
                    stack.unshift(board[j][move]);
                    board[j][move] = 0;
                    if(checkSuccesive(stack)){answer+=2;}
                    break;
                }
            }
        }
        return answer;
    }

    👨‍🏫 コメント


    JavaScriptでは、配列を使用してスタックをより簡単に実装できます.アレイの後ろから順にスタックするpushとpop、またはアレイの前からスタックするunshiftとshiftを使用します.