728x90
이해하기
처음에 시도했던 방식은 조합처럼 푸는 것이었다.
headgear가 2개, eyewear가 1개인 예시를 가지고 설명하자면,
headgear의 개수 2 + eyewear의 개수 1개 + headwear * eyewear의 조합 2개 = 5개
같은 식으로 풀이하려 하였다.
하지만 종류가 여러개가 되니 바로 fail...
참고한 블로그⬇️
문제풀이
import java.util.*;
import java.util.Map.*;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
Map<String, Integer> map = new HashMap<>();
for (String[] cloth : clothes) {
map.put(cloth[1], map.getOrDefault(cloth[1], 1) + 1);
}
for (Entry<String, Integer> entry : map.entrySet()) {
answer *= entry.getValue();
}
return answer - 1;
}
}
너무 쉬운 방법이 있어서 충격
전체 의상 종류에 안 입는 경우를 넣는 것이다.
이를 map에 전부 저장하고 전부 곱한 값에서 {안입음, 안입음}과 같이 불가능한 경우 1개만 빼주는 것이다...!
'JAVA > Coding Test Study' 카테고리의 다른 글
[Lv.2] 프로그래머스 - 귤 고르기 : Java (1) | 2024.05.30 |
---|---|
[Lv.2] 프로그래머스 - 주차 요금 계산 : Java (0) | 2024.05.30 |
[Lv.2] 프로그래머스 - 행렬의 곱셈 : Java (0) | 2024.05.24 |
[Lv.2] 프로그래머스 - N개의 최소공배수 : Java (0) | 2024.05.20 |
[Lv.2] 프로그래머스 - 예상 대진표 : Java (0) | 2024.05.20 |