알고리즘 문제 풀이를 블로그에 올리는 이유는 풀이, 코드를 기록하기 위함이니
앞으로 문제를 다 긁어오기보다 링크만 두고 풀이가 잘 보이도록 포스팅 할 예정입니다!
이 문제는 의상의 종류를 Key로 포함되는 개별 의상 리스트를 Value로 저장하고,
해당 옷들을 입거나 안입거나하는 전체 경우의 수를 구하는 문제이다.
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
public class Solution {
public static void main(String[] args) {
// String[][] clothes = {{"yellowhat", "headgear"}, {"bluesunglasses", "eyewear"}, {"green_turban", "headgear"}};
String[][] clothes = {{"crowmask", "face"}, {"bluesunglasses", "face"}, {"smoky_makeup", "face"}};
System.out.println(solution(clothes));
}
public static int solution(String[][] clothes) {
int answer = 1;
HashMap<String, List<String>> hashmap = new HashMap<>();
for(String[] c : clothes) {
if(hashmap.getOrDefault(c[1], null) == null) {
hashmap.put(c[1], new LinkedList<String>());
}
hashmap.get(c[1]).add(c[0]);
}
for(String k : hashmap.keySet()) {
// System.out.println(k);
// System.out.println(hashmap.get(k));
answer *= hashmap.get(k).size() + 1;
}
return answer - 1;
}
}