T_era
[JAVA] 해시 : 의상 본문
문제내용

간단한 수학 공식으로 생각하여 접근해봤다
옷 태그의 개수를 전부 곱하면 경우의 수가 전부 나올 수 있다라고 생각하고 풀어보았다
우선 배열을 해시에 저장을 하고
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 |