[백준] 9375 패션왕 신혜빈 - Java
여집합으로 접근하는 편이 더 합리적이다.
문제를 풀 때 의상의 이름은 어차피 중복되지 않으니 별로 중요하지 않다. 의상의 종류에 초점을 맞춰 풀이하자.
해시맵에 의상의 종류를 넣어준다. (중복되면 값을 +1)
입지 않는 경우를 함께 고려해 value+1 을 진행한 후 모든 경우의 수에서 아무것도 입지 않는 경우를 빼주면 된다.
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
for(int i=0; i<N; i++){
HashMap<String, Integer> hm = new HashMap<>();
int M = Integer.parseInt(br.readLine());
for(int j=0; j<M; j++){
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
st.nextToken();
String tmp = st.nextToken();
if(hm.containsKey(tmp)){
hm.put(tmp, hm.get(tmp)+1);
}else{
hm.put(tmp, 1);
}
}
int ans = 1;
for(String tk : hm.keySet()){
ans = ans * (hm.get(tk) +1);
}
ans = ans - 1;
System.out.println(ans);
}
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 13414 수강신청 - Java (0) | 2022.04.22 |
---|---|
[백준] 2910 빈도 정렬 - Java (0) | 2022.04.21 |
[백준] 9663 N-Queen - Java (0) | 2022.04.18 |
[백준] 20301 반전 요세푸스 - Java (0) | 2022.04.18 |
[백준] 3078 좋은 친구 - Java (0) | 2022.04.17 |
댓글
이 글 공유하기
다른 글
-
[백준] 13414 수강신청 - Java
[백준] 13414 수강신청 - Java
2022.04.22 -
[백준] 2910 빈도 정렬 - Java
[백준] 2910 빈도 정렬 - Java
2022.04.21 -
[백준] 9663 N-Queen - Java
[백준] 9663 N-Queen - Java
2022.04.18 -
[백준] 20301 반전 요세푸스 - Java
[백준] 20301 반전 요세푸스 - Java
2022.04.18