단계별로 풀어보기 -> 수학 3에서 만난 문제인 패션왕 신해빈 문제이다.
문제의 내용은
해빈이가 가진 의상의 이름과 종류가 주어지고
해빈이는 한번 입었던 옷의 조합은 다시 입지 않을 때
해빈이가 알몸이 아닌 상태로 옷을 입을 수 있는 경우의 수를 출력하면 된다.
문제에 의상의 이름과 종류가 주어지는데
의상의 이름은 중복되는 것이 없다고 문제에서 주어졌기 때문에
의상의 이름에 신경을 쓸 필요는 없다.
이 문제에선 경우의 수를 구하는 공식이 있는데
(옷의 종류별 수 +1) * (옷의 종류별 수 +1) *...(옷의 종류별 수 +1) -1이다.
마지막에 -1을 하는 이유는 알몸이 아닌 상태를 제외하기 때문이다.
옷의 종류별 수를 구하기 위해 자료구조로 Map을 사용하여 종류별로 저장하고
종류별 수를 알아내기 위해 values메소드를 사용하였다.
이 공식을 다른 문제에도 응용할 수 있도록 잘 외워놔야겠다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public static void main(String[] args) throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int tc = Integer.parseInt(reader.readLine());
StringBuilder sb = new StringBuilder();
while(tc-- > 0) {
int n = Integer.parseInt(reader.readLine());
Map<String, Integer> map = new HashMap<>();
for(int i=0; i<n; i++) {
String [] s = reader.readLine().split(" ");
if(map.containsKey(s[1])) {
} else {
}
}
int ans = 1;
ans *= v+1;
}
}
System.out.print(sb.toString());
}
|
'Algorithm' 카테고리의 다른 글
백준 1005 ACM Craft Java (0) | 2019.08.13 |
---|---|
백준 2252 줄 세우기 Java (0) | 2019.08.12 |
백준 11279 최대 힙 Java (0) | 2019.08.08 |
백준 14888 연산자 끼워넣기 Java (0) | 2019.08.07 |
백준 2606 바이러스 Java (0) | 2019.08.07 |