안녕하세요 Jin's 입니다.
오늘의 코딩테스트 문제는 해시 중 위장에 대한 문제 풀이 입니다.
해당 문제는 의상 조합 개수를 구하는 문제였습니다.
옷 종류별 개수를 구하기 위해 map에 clothes 값을 넣었습니다.
예시로 공식을 설명드리자면,
headgear(yellow_hat, green_turban, 입지 않았을 경우(eyewear만 착용했을경우)) : 총 3가지수
eyewear(blue_sunglasses, 입지 않았을 경우(headgear만 착용했을경우))총 2가지수
따라서 headgear 개수 * eyewear 개수 - 1( 둘다 입지않은 경우의 수 ) 공식을 사용하여서 풀이하였습니다.
import java.util.HashMap;
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
HashMap<String, Integer> map = new HashMap<String, Integer>();
for(int i=0; i< clothes.length;i++){
map.put(clothes[i][1], map.getOrDefault(clothes[i][1], 0)+1);
}
for(String c : map.keySet()){
answer*= map.get(c)+1;
}
return answer-1;
}
}
여러분도 한번 풀어보세요~