

생각보다는 어렵지 않다. 앞에 의상 이름은 의미없고, 의상의 종류가 중요하다.
각 종류별로 하나만 입을 수 있고, 안 입는 선택지도 존재하나, 모두 안 입는 선택지는 없다.
예를들어 첫 예제는 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 |