728x90
반응형
문제 링크
programmers.co.kr/learn/courses/30/lessons/42578
* 프로그래머스 - Level 2 - (자바)위장 - HashMap과 수학적 조합의 이용
< 로직 >
* 수학적 조합을 이용해서 경우의 수를 구한다.
* 여기서 선택을 안하는 경우도 생각 해야하므로 1가지씩 경우를 추가해준다.
* 모두 선택을 하지 않는 경우도 있으므로 중복 -1을 제거해준다.
import java.util.HashMap;
import java.util.Map.Entry;
class Solution {
public int solution(String[][] clothes) {
int n = clothes.length;
HashMap<String, Integer> map = new HashMap<>();
for(int i = 0; i < n; i++) {
if(map.containsKey(clothes[i][1]))
map.put(clothes[i][1], map.get(clothes[i][1]) + 1);
else
map.put(clothes[i][1], 2); // 선택안함을 생각해서 만들 때 2로 준다.
}
int answer = 1;
for(String key : map.keySet()) {
answer *= map.get(key);
}
return answer-1;
}
}
반응형
'문제풀이 > Programmers 문제풀이' 카테고리의 다른 글
[ 알고리즘 ] 코딩 - Programmers - 이중우선순위큐.java (0) | 2021.01.20 |
---|---|
[ 알고리즘 ] 코딩 - Programmers - H-index.java (2) | 2021.01.20 |
[ 알고리즘 ] 코딩 - Programmers - 후보키.java (0) | 2021.01.13 |
[ 알고리즘 ] 코딩 - Programmers - 네트워크.java (0) | 2021.01.08 |
[ 알고리즘 ] 코딩 - Programmers - 섬연결하기.java (0) | 2021.01.07 |