ex) 바지 2, 티셔츠 1 인 경우,
바지 -> 1번 바지
2번 바지
입지 않음
➡️ 3가지 경우
티셔츠 -> 1번 티셔츠
입지 않음
➡️ 2가지 경우
3 x 2 = 6가지 경우인데, 아무것도 입지 않는 경우를 제외하면 5가지
(5가지)
1. 1번 바지
+ 1번 티셔츠
2. 1번 바지
+ 입지 않음
3. 2번 바지
+ 1번 티셔츠
4. 2번 바지
+ 입지 않음
5. 입지 않음
+ 1번 티셔츠
6. 입지 않음
+ 입지 않음
➡️ 제외
import java.util.HashMap;
public class Camouflage {
public int solution(String[][] clothes) {
HashMap<String, Integer> wear = new HashMap<>();
for (String[] cloth : clothes) {
wear.put(cloth[1], wear.getOrDefault(cloth[1], 0) + 1);
}
int result = 1;
for (String key : wear.keySet()) {
result *= (wear.get(key) + 1);
}
return result - 1;
}
public static void main(String[] args) {
Camouflage camouflage = new Camouflage();
System.out.println(camouflage.solution(new String[][]{{"yellow_hat", "headgear"}, {"blue_sunglasses", "eyewear"}, {"green_turban", "headgear"}})); // 5
System.out.println(camouflage.solution(new String[][]{{"crow_mask", "face"}, {"blue_sunglasses", "face"}, {"smoky_makeup", "face"}})); // 3
}
}