본문 바로가기
코딩테스트/프로그래머스 2단계

프로그래머스 2단계 - 위장(해쉬)

by SICDev 2021. 9. 8.
반응형

https://programmers.co.kr/learn/courses/30/lessons/42578

 

코딩테스트 연습 - 위장

 

programmers.co.kr

 

import java.util.*;

class Solution {
    public int solution(String[][] clothes) {

        int answer = 1;
        
        //종류와 종류의 갯수를 구한다.
        HashMap<String, Integer> map = new HashMap<>();
        
        for(int i=0; i<clothes.length; i++){
            //getOrDefault(key, value) key값이 존재하면 key반환 없으면 value값 반환
            map.put(clothes[i][1], map.getOrDefault(clothes[i][1],0)+1);
        }
        
        for(String i : map.keySet()){
            //모든 경우의수 = (얼굴) * (상의) * (하의) * (겉옷)
            //얼굴만 쓴다던가 혹은 상의만 입는다던가 할 수 있기때문에
            //(얼굴+1) * (상의+1) * (하의+1) * (겉옷+1) 해줘야함
            answer = answer * (map.get(i)+1);
        }
        
        //아무것도 입지 않을수 없으니 -1을 해준다.
        answer--;
        
        return answer;
    }
}
반응형