프로그래머스 | 의상 (Java)

mul·2024년 6월 18일
0

알고리즘

목록 보기
57/65
post-custom-banner

🔒문제

프로그래머스 Lv.2 의상

🔑해결

의상의 이름과 종류가 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합 수를 return하는 solution함수를 작성하는 문제이다.

의상 종류를 key로, 의상 이름을 ArrayList에 담는 HashMap을 생성한 다음,
의상 종류에 따른 경우의 수(주어진 의상을 선택할 경우의 수list.size() + 입지 않을 경우의 수 1)를 곱하고,
'하루에 최소 한 개의 의상은 입습니다'라는 조건에 따라, 아무것도 입지 않을 선택지를 -1하였다.

🔓코드

import java.util.ArrayList;
import java.util.HashMap;
class Solution {
    public int solution(String[][] clothes) {
        int answer = 1;

        HashMap<String, ArrayList<String>> map = new HashMap<>();

        for (String[] clothe : clothes) {
            if (!map.containsKey(clothe[1])) {
              ArrayList<String> list = new ArrayList<>();
              map.put(clothe[1], list);
            }
            map.get(clothe[1]).add(clothe[0]);
        }

        for (ArrayList<String> list : map.values()){
            answer *= (list.size() + 1);
        }

        return answer-1;
    }
}
post-custom-banner

0개의 댓글