반응형
조건은 자신의 가지고 있는 의상으로 입을 수 있는 모든 경우의 수를 구하라는 것이다.
만약 안경이 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";
}
}
반응형
'백준 > 구현' 카테고리의 다른 글
[백준 3986번 / C++] 좋은 단어 (0) | 2022.01.24 |
---|---|
[백준 4375 / C++] 1 (0) | 2022.01.19 |
[백준 14469번 / C++] 소가 길을 건너간 이유 3 (0) | 2022.01.17 |
[백준 9935번 / C++] 문자열 폭발 (0) | 2022.01.17 |
[백준 2979번 / C++] 트럭 주차 (0) | 2022.01.17 |
댓글