T_era

[JAVA] 해시 : 의상 본문

Programing/Programers

[JAVA] 해시 : 의상

블스뜸 2025. 4. 14. 13:37

문제내용

간단한 수학 공식으로 생각하여 접근해봤다
옷 태그의 개수를 전부 곱하면 경우의 수가 전부 나올 수 있다라고 생각하고 풀어보았다

우선 배열을 해시에 저장을 하고

for(String[] strs : clothes){
	String tag = strs[1];
	hash.put(tag, hash.getOrDefault(tag, 0) + 1);
}

해당 태그를 키값 태그의 개수를 값으로 저장해주었다

그리고 모든 태그의 값을 곱해주었더니

for(Integer value : hash.values()){
	answer *= value;
}

결과가 다르게 나왔다..

그래서 고민을 조금해봤는데
생각해보니 안입었을 경우를 고려하지 않았다

for(Integer value : hash.values()){
	answer *= (value + 1);
}

그래서 안입었을 경우를 +1을해서 추가하고
이렇게하면 전부안입었을 경우까지 계산이 되서 값이 다르게 나온다
그래서
answer -= 1;
이 한줄을 반환하기 전에 추가해 제외 해주었더니 문제가 풀렸다

전체코드

import java.util.HashMap;

class Solution {
    public int solution(String[][] clothes) {
        int answer = 1;
        HashMap<String, Integer> hash = new HashMap<>();

        for(String[] strs : clothes){
            String tag = strs[1];
            hash.put(tag, hash.getOrDefault(tag, 0) + 1);
        }

        for(Integer value : hash.values()){
            answer *= (value + 1);
        }
        answer -= 1;

        return answer;
    }
}

 

 

 

'Programing > Programers' 카테고리의 다른 글

[JAVA] 스택 : 같은 숫자는 싫어  (0) 2025.04.14
[JAVA] 해시 : 베스트앨범  (1) 2025.04.14
[JAVA] 해시 : 전화번호 목록  (0) 2025.04.14
[JAVA] 해시 : 포켓몬  (0) 2025.04.14
[JAVA] 해시 : 완주하지 못한 선수  (0) 2025.04.14