풀이
의상의 종류별로 개수를 세고, 의상을 입어볼 수 있는 모든 경우에서, 모든 의상을 다 입은 경우만 빼면 된다.
소스코드
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main(){
int T, n;
cin >> T;
while (T--){
cin >> n;
map<string, int> info;
map<string, int>::iterator iter;
string name, kinds;
while (n--){
cin >> name >> kinds;
if (info[kinds]) info[kinds]++;
else info[kinds] = 1;
}
int result = 1;
for (iter = info.begin(); iter != info.end(); iter++)
result *= (iter->second + 1);
cout << result - 1 << '\n';
}
}
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 1644] 소수의 연속합 [C] (0) | 2021.08.15 |
---|---|
[백준 1300] K번째 수 [C] (0) | 2021.08.14 |
[백준 2667] 단지번호붙이기 [C] (0) | 2021.08.14 |
[백준 2234] 성곽 [C] (0) | 2021.08.14 |
[백준 1094] 막대기 [C] (0) | 2021.08.14 |