プログラマJavaScriptクレーン式抽出ゲーム


プログラマーLV 1クレーン人形をつかむゲーム


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

n/a言語


JavaScript

コード#コード#

function solution(board, moves) {
    let result = 0;
    let box = [];
    let temp = 0;
    
    for(let i = 0; i < moves.length; i++) {
        for(let j = 0; j < board.length; j++){
            if(board[j][moves[i] - 1] !== 0) {
               if(board[j][moves[i] - 1] === temp) {
                result += 2;
                if(box.length > 0) {
                    box.pop();
                    temp = box[box.length - 1];
                } else {
                    temp = 0;
                } 
                } else {
                    box.push(board[j][moves[i] - 1]);
                    temp = board[j][moves[i] - 1];
                }
                board[j][moves[i] - 1] = 0;
                break;
            } 
               }
        }
    return result;
}   
          

に答える


二重forゲートを用いて,移動回数iを増やし,人形を含む配列の寒熱長さjを増やした.クレインが取りに行った列には人形がいた.
その人形が私が以前引いた人形と同じように爆発するとresultに+2を加え、boxに1つ以上の人形があるとboxの上部の人形が爆発するのでpop()で取り除きます.あと残ったぬいぐるみの一番上のぬいぐるみがインデックス値として出てきますlengthに-1を加える
質問の条件を満たさなければ、箱の中に人形は一人も存在しませんか?
boxの最後の人形は存在しないのでtempは0になります.
クレーンで抜いた人形とboxの一番上の人形が違う種類だったら?結果は変わらずboxの上部にのみ追加され、tempは今回選んだ人形になります.
いずれにしても、元の位置の人形が引き抜かれたので、その位置で人形を人形がないという意味に変えて0、そして2番目は脱出ゲートです.(私にはわかりませんが…)結果値を返します.