https://school.programmers.co.kr/learn/courses/30/lessons/42578
부위별로 1개 또는 0개를 선택하는 경우의 수를 계산하면 된다.
카테고리별로 카운팅 해주고, 카테고리별 개수를 모두 곱해준다.
모두 벗는 케이스는 제외해줘야 하기 때문에, 마지막에 1을 빼줌.
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
Map<String, Integer> count = new HashMap();
for (String[] c : clothes) {
int cnt = count.getOrDefault(c[1], 0);
count.put(c[1], ++cnt);
}
int answer = 1;
for (int c : count.values()) {
answer *= c+1;
}
return answer - 1;
}
}