프로그래머스 | LV.2 의상 - HashMap & 경우의 수 문풀 (Java)

728x90

⬛ 프로그래머스 | LV.2 의상 - HashMap & 경우의 수 문풀

문제 설명


💚나의 풀이

  • 문제에서 최소 1개의 옷은 입는다고 되어있다. (= 모두 안입는 경우는 없다)
  • 종류별로 입는 옷이 겹치면 안되고, 종류별로 각 1개의 옷만 걸칠 수 있다.
  • 각 종류별로 옷을 겹치지 않게 1개씩 뽑거나 + 아예안뽑거나의 경우가 생긴다.
  • 그리고 그 경우는 최소 1번의 사건에서 동시에 일어난다.
  • 경우의 수 문제로 생각해서 수식까지 끌어내야 하는 문제였다.

풀이 설명

 

💚 제출 코드

import java.util.*;

class Solution {
    public int solution(String[][] clothes) {
        Map<String, Integer> map = new HashMap<>();
        
        for(String[] x : clothes){
            String name = x[0];
            String type = x[1]; //key로 두고
            
            map.put(type, map.getOrDefault(type, 0) + 1);
        }
        
        int value = 1;
        int answer = 0;
        
        for(String key : map.keySet()){
            value *= (map.get(key) + 1);
        }
        answer = value -1;
        
        return answer;
    }
}
728x90