https://programmers.co.kr/learn/courses/30/lessons/42578
프로그래머스 위장 문제를 풀이했습니다.
음.. 문제를 보자마자 뭔가 경우의 수를 구할 수 있는 수학적인 공식을 세우고 풀어야겠다라는 생각을 했습니다.
(a+1)*(b+1)*(c+1)····· -1 을 하게되면 정답을 구할 수 있더라구요.
그리고 문제는 해시맵을 활용해서 풀었습니다. 해시맵의 getOrDefault함수의 쓰임새가 정말 좋더군요!
import java.util.HashMap;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
HashMap<String, Integer> hashMap = new HashMap<>();
for(int i=0; i<clothes.length; i++){
hashMap.put(clothes[i][1], hashMap.getOrDefault(clothes[i][1],0)+1);
}
for(String s : hashMap.keySet()){
answer = answer *(1+ hashMap.get(s));
}
return answer-1;
}
}
'알고리즘' 카테고리의 다른 글
프로그래머스 - H - index (0) | 2020.04.12 |
---|---|
프로그래머스 - k번째수 (0) | 2020.04.12 |
프로그래머스 - 완주하지 못한 선수 (0) | 2020.04.10 |
프로그래머스 - 쇠막대기 (2) | 2020.04.06 |
프로그래머스 - 체육복(그리디) (2) | 2020.04.06 |