Java/Programmers
[Lv.2]위장
GLOWWW
2023. 2. 14. 15:31
위장은 예전에 한번 풀었던 문제였다.. 쉬워서 도전해봤던 문제..
우선 HashMap<String, Integer>를 생성한다. 주어진 입력은 2차원 배열의 String이다. 그 중, 항상 clothes[i][1]번째에는 의상의 카테고리가 주어진다. 이 카테고리를 HashMap에 put하여, 중복된 카테고리가 나올 때 마다 Integer를 1++ 해준다.
그 후, 경우의 수를 구하는 방법으로 answer값을 계산 후 return해주면 된다.
package Lv_2;
import java.util.HashMap;
public class 위장 {
public static int solution(String[][] clothes) {
int answer = 1;
HashMap<String, Integer> box = new HashMap<>();
for (int i = 0; i < clothes.length; i++) {
box.put(clothes[i][1], box.getOrDefault(clothes[i][1], 0) + 1);
}
for (int cnt : box.values()) {
answer *= cnt;
}
return answer - 1;
}
public static void main(String[] args) {
String[][] clothes = new String[][]{{"yellow_hat", "headgear"}, {"blue_sunglasses", "eyewear"}, {"green_turban", "headgear"}};
int result = solution(clothes);
}
}