[프로그래머스] 의상 42578 (JAVA)

dia·2023년 9월 29일
0

풀이방식

  1. HashMap(key = 의상 종류, value = 개수) 생성
  2. 주어진 clothes 배열에 따라 HashMap 초기화 (getOrDefault 활용)
  3. answer = (종류1 개수 + 1) * (종류2 개수 + 1) * ... * (종류n 개수 + 1) - 1

포인트

조합 계산

각 옷마다 (선택하는 경우 + 선택하지 않는 경우) = 2가지
전체 경우의 수 - 1(아무 옷도 선택하지 않은 경우)


구현

import java.util.HashMap;

public class NUM42578 {
    public static void main(String[] args) {
        String[][] clothes = {{"crow_mask", "face"}, {"blue_sunglasses", "face"}, {"smoky_makeup", "face"}};
        System.out.println(solution(clothes));
    }
    public static int solution(String[][] clothes) {
    	int answer = 0;
        
        HashMap<String, Integer> closet = new HashMap();
        for (int i = 0; i < clothes.length; i++) {
            closet.put(clothes[i][1], closet.getOrDefault(clothes[i][1], 0) + 1);
        }
        
        answer = 1;
        for(int num : closet.values()) { answer *= (num + 1); }
        answer--;
        
        return answer;
    }
}

*다른 분들의 코드를 참고하여 작성했습니다

profile
CS 메모장

0개의 댓글