https://school.programmers.co.kr/learn/courses/30/lessons/42578
풀이
public static int solution(String[][] clothes) {
int answer = 1;
HashMap<String,Integer> map = new HashMap<>();
for(int i = 0; i < clothes.length; i++){
if(map.containsKey(clothes[i][1])){
map.put(clothes[i][1],map.get(clothes[i][1]) + 1);
}else{
map.put(clothes[i][1], 1);
}
}
for(Map.Entry<String, Integer> entry : map.entrySet()){
answer *= entry.getValue()+1;
}
return answer - 1;
}
백준에서 한번 본 문제라 간단하게 해결했다. 옷의 종류를 받고 키값이 없다면 1을, 있다면 +1을 하면서 해쉬맵을 채운다.
이후 경우의 수에 따라 +1을 한 값들을 곱해나간다.
ex) 상의 2가지, 하의 3가지면 -> 상의는 0,1,2 총 3개의 경우, 하의는 0,1,2,3의 4개의 경우기 때문에 이를 곱한 12가지가 된다.
다만 옷은 한가지는 입어야 하므로 0 끼리 선택된 1가지 경우를 제외한 11이 답이 된다.
'문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 기능개발(JAVA) (0) | 2024.04.24 |
---|---|
[프로그래머스] 같은 숫자는 싫어(JAVA) (0) | 2024.04.24 |
[프로그래머스] 전화번호 목록(JAVA) (0) | 2024.04.23 |
[프로그래머스] 완주하지 못한 선수(JAVA) (0) | 2024.04.23 |
[프로그래머스] 폰켓몬(JAVA) (0) | 2024.04.23 |