728x90
반응형
https://www.acmicpc.net/problem/20920
20920번: 영단어 암기는 괴로워
첫째 줄에는 영어 지문에 나오는 단어의 개수 $N$과 외울 단어의 길이 기준이 되는 $M$이 공백으로 구분되어 주어진다. ($1 \leq N \leq 100\,000$, $1 \leq M \leq 10$) 둘째 줄부터 $N+1$번째 줄까지 외울 단
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
int n, m;
map<string, int> dic;
bool fun(pair<string, int> a, pair<string, int> b) {
if (a.second == b.second) {
if (a.first.length() == b.first.length()) {
return a.first < b.first;
}
return a.first.length() > b.first.length();
}
return a.second > b.second;
}
int main(void) {
cin >> n >> m;
string input;
for (int i = 0; i < n; i++) {
cin >> input;
if (input.length() < m) {
continue;
}
if (dic.find(input) != dic.end()) {
dic[input]++;
} else {
dic[input] = 1;
}
}
vector<pair<string, int>> v(dic.begin(), dic.end());
sort(v.begin(), v.end(), fun);
for (int i = 0; i < v.size(); i++) {
cout << v[i].first << "\n";
}
}
c++의 자료구조를 사용하여 문제를 해결했습니다.
728x90
반응형
'Algorithm > C++' 카테고리의 다른 글
| [C++] 1515 : 수 이어 쓰기 (0) | 2024.03.05 |
|---|---|
| [C++] 21921 : 블로그 (0) | 2024.03.05 |
| [C++] 13305 : 주유소 (1) | 2024.03.04 |
| [C++] 9017 : 크로스 컨트리 (1) | 2024.02.25 |
| [C++] 22866 : 탑 보기 (0) | 2024.02.24 |