[백준 20920번 C/C++] 영단어 암기는 괴로워
[백준 20920번 C/C++] 영단어 암기는 괴로워
https://www.acmicpc.net/problem/20920
해결전략
map을 사용하여 중복하여 같은 문자가 들어가면 int값을 늘리는 방식으로 몇 번 들어가느지 체크한다.
문자열의 길이는 length()를 사용하여 체크한다.
if (myMap.find(input) != myMap.end())
로 입력값이 있는지 체크한다.
코드
#include <iostream>
#include <map>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
bool Comp(const pair<string, int>& a, const 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();
}
else
return a.second > b.second;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, m;
cin >> n >> m;
map<string, int> myMap;
string input;
for(int i=0; i<n; i++){
cin >> input;
if(input.length() >= m)
{
if (myMap.find(input) != myMap.end())
myMap[input]++;
else
myMap[input] = 1;
}
}
vector<pair<string, int>> vec(myMap.begin(), myMap.end());
sort(vec.begin(), vec.end(), Comp);
for (const auto& i : vec)
cout << i.first << "\n";
return 0;
}
'⭐ 코딩테스트 > 백준' 카테고리의 다른 글
[백준 1927번 C/C++] 최소 힙 (0) | 2023.07.11 |
---|---|
[백준 14500번 C/C++] 테트로미노 (0) | 2023.07.10 |
[백준 2108번 C/C++] 통계학 (0) | 2023.07.08 |
[백준 1916번 C/C++] 최소비용 구하기 (0) | 2023.07.07 |
[백준 2156번 C/C++] 포도주 시식 (0) | 2023.07.06 |
댓글
이 글 공유하기
다른 글
-
[백준 1927번 C/C++] 최소 힙
[백준 1927번 C/C++] 최소 힙
2023.07.11 -
[백준 14500번 C/C++] 테트로미노
[백준 14500번 C/C++] 테트로미노
2023.07.10 -
[백준 2108번 C/C++] 통계학
[백준 2108번 C/C++] 통계학
2023.07.08 -
[백준 1916번 C/C++] 최소비용 구하기
[백준 1916번 C/C++] 최소비용 구하기
2023.07.07