42578-偽装
7296 ワード
😄 問題の説明
Description
スパイたちは毎日違う服を着て自分を偽装している.
例えば、スパイの服が以下のように、今日スパイが丸い眼鏡、長いコート、青いTシャツを着ている場合は、翌日はジーンズを追加したり、黒いサングラスをかけたりして、丸い眼鏡ではありません.
顔が丸いメガネ、黒いサングラスに青いTシャツのジーンズコートロングコート
スパイが持っている服に二次元配列の服が与えられた場合、異なる服の組み合わせの数を返すために解関数を作成します.
せいげんじょうけん
clothesreturn[[yellow_hat, headgear], [blue_sunglasses, eyewear], [green_turban, headgear]]5[[crow_mask, face], [blue_sunglasses, face], [smoky_makeup, face]]3
I/O例説明
例1
headgearに対応した服装は黄色hat、緑turban、眼鏡に対応した服装は青サングラスで、以下の5つの組み合わせが可能です.
1. yellow_hat
2. blue_sunglasses
3. green_turban
4. yellow_hat + blue_sunglasses
5. green_turban + blue_sunglasses
例2Faceに対応した服装はcrow mask,blue sunglasse,mocky paskであり,以下の3つの組み合わせが可能である.
1. crow_mask
2. blue_sunglasses
3. smoky_makeup
ソース:https://programmers.co.kr/learn/courses/30/lessons/42578💻 Javaコード
import java.util.HashMap;
class Solution {
public int solution(String[][] clothes) {
int answer = 0;
int count =1;
//<의상종류, 해당 의상종류의 개수>
HashMap<String, Integer> clothesHash = new HashMap<String, Integer>();
for(int i = 0; i <clothes.length ; i++) {
if(!clothesHash.containsKey(clothes[i][1])) {
// 새로운 의상 종류이면
clothesHash.put(clothes[i][1], 1);
} else {
// 이미 있는 의상 종류이면
clothesHash.put(clothes[i][1], clothesHash.get(clothes[i][1])+1);
}
}
for(String key : clothesHash.keySet()) {
count *= clothesHash.get(key)+1;
}
answer = count -1;
return answer;
}
}
Reference
この問題について(42578-偽装), 我々は、より多くの情報をここで見つけました https://velog.io/@gus7wn/42578-위장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol