[プログラマー/LV 2]偽装(JavaScript)


に見せかける


問題の説明


スパイたちは毎日違う服を着て自分を偽装している.
例えば、スパイの服が以下のように、今日スパイが丸い眼鏡、長いコート、青いTシャツを着ている場合は、翌日はジーンズを追加したり、黒いサングラスをかけたりして、丸い眼鏡ではありません.
タイプ名
黒墨鏡
上着
ズボン
コート着
スパイが持っている服に二次元配列の服が与えられた場合、異なる服の組み合わせの数を返すために解関数を作成します.

せいげんじょうけん


•服装の各行は「服装名、服装の種類」で構成されています.
スパイが持っている服の数は1着以上30着以下.
同名の服装はありません.
•服装のすべての要素は文字列で構成されています.
•すべての文字列の長さは、1または20未満の自然数であり、アルファベット小文字または「」のみで構成されます.
スパイは毎日少なくとも1枚の服を着ている.

コード#コード#

function solution(clothes) {
    var answer = 0;
    let dict = {}
    let cloth = []
    for(c of clothes){
        if (!dict[c[1]]){
            dict[c[1]] = [c[0]]
            cloth.push(c[1])
        }
        else {
            dict[c[1]] = [...dict[c[1]], c[0]]
        }
    }
    answer = 1
    for (c of cloth){
        answer *= dict[c].length + 1
    }
    return answer - 1;
    
}