TIL 65|JavaScriptアルゴリズム(プログラマーJSに偽装)

4287 ワード

問題のショートカット

問題の概要


スパイが持っている服に二次元配列の服が与えられた場合、異なる服の組み合わせの数を返すために解関数を作成します.

方法


ハッシュ問題に基づいて,服装種類をキー値,服装数を値としてキー値形式のobjectを生成する.valueを使用して状況の数を計算します.

注意事項


スパイは毎日少なくとも1枚の服を着ている.
つまり、帽子+上着+下着+コートを着る日だけでなく、帽子をかぶる日もあります.
この言葉を逃したら、状況の数が間違っているかもしれません.
問題の掲示板...


正しいコード

function solution(clothes) {
    let answer = 1;
    let obj = {};
   
    for(let i = 0; i<clothes.length;i++){
        if(obj[clothes[i][1]]>=1){
            obj[clothes[i][1]]+=1;
        }else{
            obj[clothes[i][1]] = 1;
        }
    }
    for (let key in obj){
        answer*=(obj[key]+1);
    }
    return answer-1 ;
}

コード解析


objは服装の種類、個数をkey-valueとするobjectである.
このobjのvalueに1を加え、すべて乗算します.乗算をするので、答えの初期値を0から1に変更します!
最後に、スパイは少なくとも1着以上の服を着なければならないので、すべての服を着ないときの数は1減少します.