[프로그래머스] 의상 (Java)
https://school.programmers.co.kr/learn/courses/30/lessons/42578
입력 : String[][] clothes (1 ≤ clothes.length ≤ 30)
출력 : 서로 다른 옷의 조합의 수
O(n)
해시
없음
없음
getOrDefault는 주어진 키에 매핑된 값을 반환하고, 해당 키가 존재하지 않으면 기본값(두번째 인수)을 반환한다.
해시
import java.util.HashMap;
class Solution {
public int solution(String[][] clothes) {
HashMap<String, Integer> clothesMap = new HashMap<>();
// 각 의상의 종류별 개수를 센다.
for (String[] cloth : clothes) {
String type = cloth[1];
clothesMap.put(type, clothesMap.getOrDefault(type, 0) + 1);
}
int combinations = 1;
// 모든 조합의 수를 계산한다.
for (int count : clothesMap.values()) {
combinations *= (count + 1);
}
// 아무 옷도 입지 않는 경우를 제외한다.
return combinations - 1;
}
}