ALGORITHM/PROGRAMMERS
[프로그래머스] 위장
0298
2021. 8. 7. 21:47
https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
2021-08-07
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
Map<String, Integer> map = new HashMap<>();
for(int i = 0; i < clothes.length; i++) {
String key = clothes[i][1];
map.put(key, map.getOrDefault(key, 0) + 1);
}
for(Map.Entry<String, Integer> m: map.entrySet()) {
answer *= (m.getValue()+1);
}
return answer - 1;
}
}
|
cs |
#문제풀이
getOrDefault()라는 메서드를 알았다. 찾는 키가 존재하면 해당 키의 값을 반환하고 없으면 default 값을 반환.
A : 2개, B : 1개, C : 3개가 있다면, (A+1)*(B+1)*(C+1)이고 하나도 안 입는 경우가 없으니 -1 을 해주면 된다.
이 문제는 그냥 푸는게 아니라 공식?같은거 있을 것 같아서 찾아봤다;;
