문제 링크
해시맵으로 문제를 풀어 보았다.
옷의 종류를 key로 하고, 종류별로 옷의 갯수를 value로 가지는 해시맵을 이용하여 경우의 수를 구하는 형태이다.
public static int solution(String[][] clothes) {
int answer = 1;
HashMap<String, Integer> hm = new HashMap<String, Integer>();
for(int i=0; i<clothes.length; i++) {
String key = clothes[i][1];
hm.put(key, hm.getOrDefault(key, 0)+1);
}
Set<String> keySet = hm.keySet();
for(String key : keySet) {
System.out.println(key + " " + hm.get(key));
// key의 갯수만큼 입는경우 + 1 안입는경우
answer *= hm.get(key)+1;
}
// 모두 안입는 경우 -1
return answer-1;
}