delpho
[실버3, 조합] 백준 9375 - 패션왕 신해빈 (자바) 본문
Think
1. Map을 활용해서 문제 푸는 아이디어는 어렵지 않았음.
2. 종류별 개수로 경우의 수를 도출하는 계산식을 잘 고려해야함 ( 종류별 개수 + 1을 모두 곱한 후 (-1) 해주어야함 )
- 종류별 개수 + 1을 하는 이유는, 옷을 안 입는 경우도 있기 때문
- 마지막에 -1을 하는 이유는, 옷을 모두 안 입는 경우는 없기 때문
제출 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
static int N, M, map[][], white, blue;
static Map<String, Integer> m = new HashMap<>();
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer st;
public static void main(String[] args) throws IOException {
init();
}
private static void process() {
int multiplyCount = 1;
for (Map.Entry<String, Integer> entry : m.entrySet()){
int v = entry.getValue();
multiplyCount *= v+1;
}
System.out.println(multiplyCount-1);
}
public static void init() throws IOException {
N = Integer.parseInt(br.readLine());
for (int i = 0; i < N; i++) {
M = Integer.parseInt(br.readLine());
for (int j = 0; j < M; j++) {
st = new StringTokenizer(br.readLine());
//해당 문자열은 필요 없음
st.nextToken();
String type = st.nextToken();
m.put(type, m.getOrDefault(type, 0) + 1);
}
process();
m.clear();
}
}
}
'알고리즘 > 조합' 카테고리의 다른 글
[골드5, 순열] 백준 1722 - 순열의 순서 (자바) (0) | 2024.03.05 |
---|---|
[실버1, 조합&DP] 백준 10164 - 격자상의 경로 (자바) (1) | 2024.02.27 |