알고리즘 & 자료구조/해시
[프로그래머스 알고리즘 고득점 Kit][해시][Java] 의상
수수다
2026. 2. 22. 20:00
https://school.programmers.co.kr/learn/courses/30/lessons/42578
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
1. 정답 풀이
각 의류 타입의 갯수를 센다.
하나의 타입을 여러개 입지 못하니까 그 타입이 가질 수 있는 경우의 수는 안입는다 1번을 입는다, 2번을 입는다. ... 이렇게 된다.
안입는다를 포함해서 갯수 + 1을
타입별로 전부 곱하면 전체 경우의 수가 나온다.
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
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);
}
int answer = 1;
for(String type : closet.keySet()) {
answer *= (closet.get(type) + 1);
}
return answer-1;
}
}
