백준 문제풀이

9375. 패션왕 신해빈 (자바, Java)

뮤츠 2022. 10. 25. 00:13

생각보다는 어렵지 않다. 앞에 의상 이름은 의미없고, 의상의 종류가 중요하다.

각 종류별로 하나만 입을 수 있고, 안 입는 선택지도 존재하나, 모두 안 입는 선택지는 없다.

예를들어 첫 예제는 3가지 옷이 나오고, 종류는 headgear와 eyewear 2가지이다.

headgear를 입는 경우의 수는 안입기, hat, turban 3가지,

eyewear는 sunglasses와 안입기 2가지.

3*2 에서 모두 안입는 경우 1가지를 빼줘서 5가 된다.

눈치챘겠지만, 각 종류별 가짓수+1을 곱해준 뒤, 모두 안입는 경우의수 1을 빼주면 정답.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int t = Integer.parseInt(br.readLine());
		
		StringBuilder sb = new StringBuilder();
		
		for (int i=0; i<t; i++) {
			int n = Integer.parseInt(br.readLine());
						
			Map <String, Integer> count = new HashMap<>();
			String[] str = new String [n];
			for (int j=0; j<n; j++) {
				StringTokenizer st = new StringTokenizer(br.readLine()," ");
				st.nextToken();
				str[j] = st.nextToken();
				count.put(str[j], count.getOrDefault(str[j],0)+1);
			}
			
			int ans = 1;
			for (int j : count.values()) {
				ans *= j+1;
			}
				ans -= 1;
				sb.append(ans+"\n");			
		}
		System.out.println(sb);
	}
}

'백준 문제풀이' 카테고리의 다른 글

2004. 조합 0의 개수  (0) 2022.10.29
1676. 팩토리얼 0의 개수  (0) 2022.10.29
1010. 다리 놓기 (자바, Java)  (0) 2022.10.25
11051 이항 계수 2 (자바, Java)  (0) 2022.10.24
11050. 이항계수 (자바, Java)  (0) 2022.10.24