반응형
C++
#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <vector>
using namespace std;
bool cmp(pair<string, int> &a, pair<string, int> &b)
{
// 두 int 값 이 같으면 두번째 정렬 조건으로
if (a.second == b.second)
{
// 두 문자열의 길이가 같으면 세번째 정렬 조건으로
if (a.first.length() == b.first.length())
// 두 문자열 알파벳 순 정렬
return (a.first < b.first);
return (a.first.length() > b.first.length());
}
else return (a.second > b.second);
}
int main(void)
{
cin.tie(0)->sync_with_stdio(0);
unordered_map<string, int> M;
string str;
int n, m;
cin >> n >> m;
for (int i = 0; i < n; i++)
{
cin >> str;
if (str.length() >= m)
M[str]++;
}
// Map의 원소를 vector로 복사
vector<pair<string, int>> V(M.begin(), M.end());
sort(V.begin(), V.end(), cmp);
for (auto p : V)
cout << p.first << "\\n";
}
반응형
'Algorithm > Data Structure' 카테고리의 다른 글
[BOJ 25325] S5 학생 인기도 측정 { C++ } (0) | 2022.07.11 |
---|---|
[BOJ 1302] S4 베스트 셀러 {C++} (0) | 2022.07.02 |
[BOJ 9733] S5 꿀벌 {C++} (0) | 2022.07.01 |
[BOJ 16499] S4 동일한 단어 그룹화하기 {C++} (0) | 2022.06.30 |
[ BOJ 5568 ] S4 카드 놓기 { C++ } (0) | 2022.06.25 |