본문 바로가기
알고리즘/PROGRAMMERS

의상(Lv.2)

by 현대타운301 2024. 3. 22.

 

 


 

문제 설명

 

 

 

입출력 예시

 

 

요약

각 의상의 카테고리마다 하나씩 다르게 착용하는 경우의 수 구하기

 


 

풀이

 

접근 방식

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