[프로그래머스] 위장

less than 1 minute read

문제정보

어떻게 풀까?

카테고리 별로 갯수를 구한 뒤 조합의 수를 구하기 위해 곱한다. 단 특정 카테고리를 선택하지 않는 경우도 고려해야하기 때문에 카테고리 가짓수에 +1을 한 뒤 서로 곱한다.

이렇게 구해진 값에는 모두 선택하지 않은 경우도 포함되어 있기 때문에 다시 -1을 한다.

문제풀이

import java.util.*;

class Solution {
    public int solution(String[][] clothes) {
        Map<String, Integer> m = new HashMap<>();
        int answer = 1;

        for(int i=0; i<clothes.length; i++){
            String k = clothes[i][1];
            if(m.containsKey(k)){
                int v = (int)m.get(k);
                m.put(k, v+1);
            }else{
                m.put(k, 1);
            }
        }

        for(String k : m.keySet()){
            int v = m.get(k);
            answer *= (v+1);
        }
        answer -= 1;
        return answer;
    }
}

Leave a comment