문자열 조합 문제입니다. 이 문제는 조합의 특성을 잘 알고 풀면 금방 풀 수 있는 문제 입니다.
HashMap<String, Integer> hm = new HashMap<>();
// 의상이 등장할때마다 카운트를 늘려주면서 벌 수를 증가 시켜 줍니다.
for (int i = 0; i < clothes.length; i++) {
String type = clothes[i][1];
hm.put(type, hm.getOrDefault(type, 0) + 1);
}
Iterator<Integer> iter = hm.values().iterator();
// 현재 의상에서 조합의 개수가 될 수 있는 것을 곱해줍니다.
// 현재 의상의 개수에 +1 을 해주어서 해당옷의 종류를 입지 않는 종류까지 더해주는 것입니다.
while (iter.hasNext()) {
answer *= iter.next().intValue() + 1;
}
// 초기화할때 사용해주었던 1을 빼주는 것입니다.
return answer - 1;