[プログラマーレベル2]偽装
に質問
スパイたちは毎日違う服を着て自分を偽装している.
例えば、スパイの服が以下のように、今日スパイが丸い眼鏡、長いコート、青いTシャツを着ている場合は、翌日はジーンズを追加したり、黒いサングラスをかけたりして、丸い眼鏡ではありません.
顔が丸いメガネ、黒いサングラスに青いTシャツのジーンズコートロングコート
スパイが持っている服に二次元配列の服が与えられた場合、異なる服の組み合わせの数を返すために解関数を作成します.
せいげんじょうけん
💡 に答える
class Solution {
fun solution(clothes: Array<Array<String>>): Int =
clothes.groupBy({it[1]}, {it[0]}).map { it.value.count() + 1 }.fold(1) { total, next -> total * next } - 1
}
もう少し簡単です.class Solution {
fun solution(clothes: Array<Array<String>>): Int =
clothes.groupBy{ it[1] }.values.fold(1) { total, value -> total * (value.size + 1) } - 1
}
答え=すべての場合(未着の場合も含む)の数—何も着ない数(=1)Reference
この問題について([プログラマーレベル2]偽装), 我々は、より多くの情報をここで見つけました https://velog.io/@yuuuzzzin/프로그래머스-Level-2-위장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol