문제링크 : https://www.acmicpc.net/problem/20291
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = INT_MAX;
int N;
string s;
map<string, int>m; //Key 기준 오름차순 정렬
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> N;
for(int i=0; i<N; i++)
{
cin >> s;
int idx = s.find('.');
string tmp = ""; //.이후 문자열
for(int j=idx+1; j<s.size(); j++)
{
tmp+=s[j];
}
m[tmp]++; //갯수 체크
}
for(auto i : m)
{
cout << i.first << " " << i.second << "\n";
}
return 0;
}
.의 위치를 파악하고, . 이후 문자를 따로 더하여 문자열을 만들어준다.
해당 문자열에 대해서 map의 Key로 Value를 카운팅해준다.
이후 map에 저장된 Key와 Value의 값을 같이 출력해주면 된다.
'백준 > 실버' 카테고리의 다른 글
[백준 11508번] 2+1 세일 (C++) (0) | 2024.04.08 |
---|---|
[백준 1448번] 삼각형 만들기 (C++) (0) | 2024.04.07 |
[백준 1755번] 숫자놀이 (C++) (0) | 2024.04.05 |
[백준 1822번] 차집합 (C++) (0) | 2024.04.04 |
[백준 15688번] 수 정렬하기 5 (C++) (0) | 2024.04.03 |