조앤의 기술블로그
[프로그래머스 / 해시] 위장 (java) 본문
초기값 answer을 1로 해주어야 한다는 것을 주의하자.
[문제접근]
옷 개수에 따라 경우의 수를 구해야 한다. -> 옷 종류에 따른 개수에 따라 hash map을 구성한다.
경우의 수를 구하는 공식을 구한다.
- 각 종류의 옷에 안입는 선택지를 하나 추가 (옷 개수 + 1)
- 하나도 안입는 선택지는 없으므로 전체에서 -1
따라서 공식은 (n+1) * (m+1) *... -1
[코드]
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
Map<String, Integer> closet = new HashMap<>();
int val = 0;
for(String[] clo : clothes){
if(closet.get(clo[1]) == null)
closet.put(clo[1], 1);
else{
val = closet.get(clo[1]) + 1;
closet.put(clo[1], val);
}
}
// 각 종류의 옷에 안입는 선택지를 하나 추가 (+1)
// 하나도 안입는 선택지는 없으므로 전체에서 -1
for(String key: closet.keySet()){
answer *= (closet.get(key) + 1);
}
answer -=1;
return answer;
}
}
'Programming > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / 그래프] 가장 먼 노드 (java) (0) | 2020.03.27 |
---|---|
[프로그래머스 / SQL] SUM, MAX, MIN (mysql) (0) | 2020.03.27 |
[프로그래머스 / 해시] 완주하지 못한 선수 (java) (0) | 2020.03.27 |
[프로그래머스 / 스택&큐] 프린터 (java) (0) | 2020.03.25 |
[프로그래머스] 스킬트리 (java) (0) | 2020.03.23 |