백준/구현

[백준 9375번 / C++] 패션왕

배발자 2022. 1. 18.

목차

    반응형
     

    <map> 자료구조

    *헤더로 을 갖는다. 은 key 와 value 의 쌍으로 이루어진 균형 이진 트리이다. key 를 기준으로 사전순으로 정렬되어 있기 때문에 검색 속도가 빠르다. 바로 map 의 쓰임을 알아보자. string s= "my name is m...

    baebalja.tistory.com


    조건은 자신의 가지고 있는 의상으로 입을 수 있는 모든 경우의 수를 구하라는 것이다. 

    만약 안경이 3개가 있고 바지가 3벌이 있다. 이때 구할 수 있는 경우의 수는 

     

    (안경 안쓸 때 ,  안경1,  안경2, 안경3) ->  총 4가지 

    (바지 안입을 때, 바지1, 바지2, 바지3) -> 총 4가지 

     

    근데 여기서 알몸이 아닌 상태여야 하기 때문에 마지막에 -1 을 해줘야한다. 

     

    여기서 map 을 활용하여 의상 종류를 키값으로 갖는 벨류값을 하나씩 증가하여 같은 종류의 의상 개수를 확인할 수 있다. 

    
      
    #include <iostream>
    #include <map>
    #include <algorithm>
    using namespace std;
    int main() {
    int n; cin >> n;
    for (int i = 0; i < n; i++) {
    int nn; cin >> nn;
    map<string, int> m;
    for (int j = 0; j < nn; j++) {
    string s1; cin >> s1;
    string s2; cin >> s2;
    m[s2]++;
    }
    int sum = 1;
    for (auto x : m) {
    sum *= x.second + 1;
    }
    cout << sum - 1 << "\n";
    }
    }
    반응형

    댓글