문제 설명
입출력 예시
요약
각 의상의 카테고리마다 하나씩 다르게 착용하는 경우의 수 구하기
풀이
접근 방식
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; // 아무것도 착용하지 않는 경우 제외
}
}
'알고리즘 > PROGRAMMERS' 카테고리의 다른 글
숫자 문자열과 영단어(Lv.1) (0) | 2024.03.22 |
---|---|
비밀지도(Lv.1) (0) | 2024.03.22 |
캐시(Lv.2) (0) | 2024.03.22 |
기능개발(Lv.2) (1) | 2024.03.22 |
튜플(Lv.2) (0) | 2024.03.22 |