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 을 해주면 된다.

이 문제는 그냥 푸는게 아니라 공식?같은거 있을 것 같아서 찾아봤다;;