👀 문제
https://programmers.co.kr/learn/courses/30/lessons/42578
👊 첫 번째 도전
1. 설계
- key는 의상의 종류(clothes[i][1]), value는 종류의 갯수를 가지는 해쉬맵을 선언한다.
- (의상종류A+1)x(B+1)x…x(N+1)-1이 answer이다. 이때 각 종류에 +1은 해당 의상 종류를 선택하지 않는 경우(null)이며, 마지막 -1은 모든 종류가 없는 경우(null)이다.
2. 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.HashMap;
/**
*
* @author HEESOO
*
*/
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
int temp;
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],1);
}
else{
temp=map.get(clothes[i][1]);
map.replace(clothes[i][1],temp+1);
}
}
for(String key:map.keySet()){
answer*=map.get(key)+1;
}
answer--;
return answer;
}
}
3. 결과
🤟 성공 🤟
👏 해결 완료!
map의 값을 변경할 때 replace를 사용하였는데, put 역시 replace와 같은 기능을 한다는 것을 기억해두자!