[프로그래머스] 위장
2020. 4. 1. 15:49ㆍ프로그래머스/LEVEL 2
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
HashMap<String, Integer> hm = new HashMap<>();
for(int i=0; i<clothes.length; i++){
if(hm.containsKey(clothes[i][1])){
hm.replace(clothes[i][1],hm.get(clothes[i][1])+1);
}else{
hm.put(clothes[i][1],1);
}
}
for(int v : hm.values()){
answer *= v+1;
}
answer = answer -1;
return answer;
}
}
1. 기본적으로 조합을 구하는 각 종류에 선택될 수 있는 옵션 갯수들을 곱하는 방법
2. 하지만 선택하지 않아도 되는 경우도 가능하므로 각 옵션 갯수에 +1씩 해서 곱한다.
3. 아무것도 선택되지 않은 1가지 경우를 빼면 전체 경우의 수 구할 수 있다.
'프로그래머스 > LEVEL 2' 카테고리의 다른 글
[프로그래머스] 숫자의 표현 (0) | 2020.04.02 |
---|---|
[프로그래머스] 124나라의 숫자 (0) | 2020.04.02 |
[프로그래머스] 카펫 (0) | 2020.03.31 |
[프로그래머스] 라면공장 (0) | 2020.03.31 |
[프로그래머스] 쇠막대기 (0) | 2020.03.31 |