반응형
문제 링크 : https://www.acmicpc.net/problem/9375
풀이
map 자료구조를 이용하여 의상을 종류별로 구분하고 개수를 카운트한다.
의상의 이름은 중복이 없으므로 사실은 필요없다. 따라서, 입력만 받고 사용하지 않는다.
총 가지 수는 의상의 종류를 모두 곱하면 되는데
의상의 개수에 입지 않는 경우도 있으므로 곱할 때 +1을 해줘야하며
마지막에 모두 벗고 있는 경우는 빼줘야하므로 -1을 해줘야한다.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
int T;
cin >> T;
for(int t=0; t<T; t++){
int n;
cin >> n;
unordered_map<string, int> m;
for(int i=0; i<n; i++){
string trash, str;
cin >> trash >> str;
m[str] += 1;
}
int ans = 1;
for(auto i : m){
ans *= (i.second + 1);
}
cout << ans - 1 << '\n';
}
}
반응형
'Programming Solve > BOJ' 카테고리의 다른 글
BOJ 14500 - 테트로미노 / C++ (0) | 2022.05.02 |
---|---|
BOJ 5430 - AC / C++ (0) | 2022.05.01 |
BOJ 10464 - XOR / C++ (0) | 2022.04.21 |
BOJ 1107 - 리모컨 / C++ (0) | 2022.04.21 |
BOJ 1074 - Z / C++ (0) | 2022.04.21 |