#1. 문제
#2. 풀이
1. unordered_map 컨테이너
um 컨테이너는 C++ 표준라이브러리에서 제공하는 연관 컨테이너입니다. um 컨테이너는 키와 값을 한 쌍으로 해시 자료구조에 저장합니다.
2. 한 의상 종류 당 경우의 수는 개수+1입니다.
- 먼저, 각 의상 종류를 Key로, 그 개수를 값으로 선언하고, 입력을 받습니다.
- 그리고, um 컨테이너를 반복자를 활용하여 순회하며 각 의상 종류에 해당되는 의상 개수+1을 곱해주어 최종 값을 얻고, 이 값에서 '모든 의상을 입지 않은 상태'의 경우 한 개를 빼주어 결과를 출력합니다.
#3. 코드
#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>
using namespace std;
int T;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> T;
while (T--)
{
int N;
cin >> N;
unordered_map<string, int> um;
while (N--)
{
string name, type;
cin >> name >> type;
um[type]++;
}
int ans = 1;
for (auto it = begin(um); it != end(um); ++it)
{
ans *= (it->second + 1);
}
cout << ans - 1 << '\n';
}
return 0;
}
'문제 풀이 > BOJ 문제 풀이' 카테고리의 다른 글
[BOJ알고리즘, C++]#3584_가장 가까운 공통 조상, 트리, LCA (0) | 2024.03.12 |
---|---|
[BOJ알고리즘, C++]#2493_탑, 스택, 히스토그램 유형 (0) | 2024.03.07 |
[BOJ알고리즘, C++]#1806_부분 합, Prefix Sum, 누적 합, 투 포인터 (0) | 2024.03.03 |
[BOJ알고리즘, C++]#15681_트리와 쿼리, 트리, DFS, DP (0) | 2024.03.03 |
[BOJ알고리즘, C++]#2533_사회망 서비스, 트리, DP (1) | 2024.03.03 |