알고리즘/PROGRAMMERS
의상(Lv.2)
현대타운301
2024. 3. 22. 19:20
문제 설명
입출력 예시
요약
각 의상의 카테고리마다 하나씩 다르게 착용하는 경우의 수 구하기
풀이
접근 방식
1. 각 카테고리에 해당하는 아이템의 개수 구하기
→ 카테고리(key) : 개수(value) map 만들기(아무것도 착용하지 않는 경우의 수 추가)
2. 최소 하나의 의상은 착용해야 함
→ 모든 카테고리에서 아무것도 고르지 않는 경우 제외
코드리뷰
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
HashMap<String, Integer> map = new HashMap<>();
for(int i = 0; i < clothes.length; i++) {
map.put(clothes[i][1], map.getOrDefault(clothes[i][1], 1) + 1); // 카테고리:개수 map 생성
}
int answer = 1;
for(int i : map.values()) {
answer *= i; // 모든 조합 구하기
}
return answer - 1; // 아무것도 착용하지 않는 경우 제외
}
}