[백준/C++] 9375번 패션왕 신해빈
2021. 2. 16. 23:18ㆍ알고리즘/구현
728x90
반응형
문제: www.acmicpc.net/problem/9375
9375번: 패션왕 신해빈
첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다.
www.acmicpc.net
문제풀이
해빈이가 입을 수 있는 옷의 경우의 수는 옷의 종류가 상의, 하의, 모자가 있다고 했을때
(상의+1) x (하의+1) x (모자+1) - 1 이다.
여기서 상의, 하의, 모자에 1을 더해준 것은 옷을 입지 않는 경우이고 마지막으로 1을 빼준 것은 해빈이가 세 종류의 옷들 모두 입지 않았을 때를 빼준 것이다.
코드
#include <iostream>
#include <vector>
using namespace std;
int main(){
ios::sync_with_stdio(false); cin.tie(nullptr);
int T;
cin>>T;
while(T--){
int n;
cin>>n;
vector<pair<string, int>> v; //종류, 해당 종류의 개수 순으로 저장
for(int i=0; i<n; i++){
string dress, cate;
cin>>dress>>cate;
bool flag = true;
for(int j=0; j<v.size(); j++){
if(v[j].first == cate){
v[j].second++; //종류 개수 1 상승
flag = false;
break;
}
}
if(flag)
v.push_back({cate,1}); //새로운 종류 추가
}
int result = 1;
for(auto i : v){
result *= i.second+1; //종류의 개수에 1씩 더해서 모두 곱해줌
}
cout<<result-1<<"\n"; //알몸인 경우의 수인 1을 빼고 출력
v.clear(); //벡터를 비워준다.
}
return 0;
}
결과
728x90
반응형
'알고리즘 > 구현' 카테고리의 다른 글
[백준/C++] 1541번 잃어버린 괄호 (0) | 2021.02.22 |
---|---|
[백준/C++] 1260번 DFS와 BFS (0) | 2021.02.21 |
[백준/C++] 11723번 집합 (0) | 2021.02.04 |
[백준/C++] 2108번 통계학 (0) | 2021.02.04 |
[백준/C++] 2164번 카드2 (0) | 2021.02.03 |