[Java] 프로그래머스 Hash - 위장 (Lv2)

JuhyunKim·2022년 11월 3일
0

코딩테스트

목록 보기
4/8

프로그래머스 - 위장
https://school.programmers.co.kr/learn/courses/30/lessons/42578


위장

HashMap을 이용한 풀이

import java.util.Map;
import java.util.HashMap;

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

        for(String[] clothArray : clothes)
            map.put(clothArray[1], map.getOrDefault(clothArray[1], 0) + 1);

        for (String key : map.keySet())
            answer *= map.get(key)+1;

        return (answer-1);
    }
}

경우의 수를 구하는 공식만 알면 쉽게 풀 수 있을 문제다.

곱의 법칙 : 두 사건 A, B에 대하여 사건 A가 일어나는 경우의 수가 m이고, 그 각각에 대하여 사건 B가 일어나는 경우의 수가 n이면 두 사건 A, B가 연이어 일어나는 경우의 수는 m*n 이다.

착용하지 않는 경우까지 포함해 각 의상의 종류 수에 +1하여 모든 경우의 수를 곱하고, 아무것도 착용하지 않은 상태를 제외하기 위해 -1 한다.

0개의 댓글