반응형
이 문제는 HashMap에 put하는 부분이 완주하지 못한 선수 문제와 똑같다.
먼저 HashMap에 옷의 종류별로 몇 개가 있는지 put 하도록 하자.
import java.util.HashMap;
class Solutio {
public int solution(String[][] clothes) {
int answer = 1;
HashMap<String,Integer> hm = new HashMap<String, Integer>();
for (int i=0; i<clothes.length; i++) {
hm.put(clothes[i][1], hm.getOrDefault(clothes[i][1], 0)+1);
}
for (String key : hm.keySet()) {
answer *= (hm.get(key) + 1);
}
return answer-1;
}
}
예제1의 데이터를 가지고 테스트를 해보면 HashMap에 아래와 같이 데이터가 담긴 것을 볼 수 있다.
eyewear:1
headgear:2
경우의 수를 구하는 문제로 eyewear가 1개, headgear가 2개 존재할 때 이를 조합하는 경우의 수는 eyewear x headgear로 2이다.
하지만 이 문제에선 eyewear만 착용하는 경우와 headgear만 착용하는 경우도 포함시켜야 하므로 (eyewear+1) x (headgear+1)로 6이다.
이렇게 계산할 경우 아무것도 입지 않는 경우가 포함되어 있기 때문에 마지막에 -1를 해주면 원하는 결과를 얻을 수 있다.
728x90
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스/JAVA] 가장 큰 수 - 정렬 (0) | 2022.02.20 |
---|---|
[프로그래머스/JAVA] K번째수 - 정렬 (0) | 2022.02.20 |
[프로그래머스/JAVA] 베스트 앨범 - 해시 (0) | 2022.02.20 |
[프로그래머스/JAVA] 전화번호 목록 - 해시 (0) | 2022.02.18 |
[프로그래머스/JAVA] 완주하지 못한 선수 - 해시 (0) | 2022.02.18 |
댓글