[Java 해시] 프로그래머스 - 위장

gonudayo·2021년 8월 13일
1
post-thumbnail

해시맵에 친숙해지자.

풀이

  1. 종류별로 개수를 카운트한다.
  2. 종류별 개수 + 1 을 모두 곱하면 답이다.

전체코드

import java.util.HashMap;

class Solution {
    public int solution(String[][] clothes) {
        int answer = 1;
        HashMap<String, Integer> HM = new HashMap<>();
        
        for(int i = 0; i < clothes.length; i++) {
             HM.put(clothes[i][1], HM.getOrDefault(clothes[i][1], 0) + 1);
        }
        
        for(String key : HM.keySet()) {
            answer *= HM.get(key) +1;
        } 
            
        return answer - 1;
    }
}

종류별로 카운트

for(int i = 0; i < clothes.length; i++) {
	HM.put(clothes[i][1], HM.getOrDefault(clothes[i][1], 0) + 1);
}

해당 종류 value에 +1
종류가 중복될 경우 원래 있던 value에 +1

경우의 수 구하기

int answer = 1;

for(String key : HM.keySet()) {
	answer *= HM.get(key) +1;
}

return answer - 1;

곱해야하기 때문에 answer 초기값 1로 설정
종류별 value 값에 +1 을 하여 곱을 구함
초기값이었던 1을 빼주고 answer 리턴

profile
초신성 백엔드 개발자

0개의 댓글