[백준/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