https://www.acmicpc.net/problem/9046
* map을 정렬하는방법, vector로 옮겨라
vector<pair<int,int>> v(m.begin(), m.end());
이후 sort 하면된다
sort(v.begin(), v.end(),cmp)
* 문자 index는 map필요X 배열만으로됨
사실 이문제는 문자를 index로 쓰기때문에 a[문자-'a']++ 을 카운트로 사용하는것 만으로 해결된다.
map을 쓸필요가 없었다..
- 숫자 to int
[문자-'0']
- 알파벳 to int
[문자-'a'] // -a임에 주의하자
#include <bits/stdc++.h>
using namespace std;
int n;
string s;
map<char, int> m;
int main() {
cin >> n;
n++;
while (n--) {
m.clear();
getline(cin, s);
for (int i = 0; i < s.size(); ++i) {
if (s[i] == ' ') continue;
m[s[i]]++;
}
/*for (auto i : m) {
cout << i.first <<" : " << i.second << endl;
}*/
vector<pair<int,int>> v(m.begin(), m.end());
//for (pair<int, int> it : v) cout << it.first << ":" << it.second << " ";
//cout << "\n==============================\n";
sort(v.begin(), v.end(), [](pair<int, int> a, pair<int, int> b) {
return a.second > b.second;
});
//sort(m.begin(), m.end());
if (v.size() >= 2 && v[0].second == v[1].second)
cout << "?" << "\n";
else if(v.size())
cout << (char)v[0].first << "\n";
}
}
'Algorithm > boj' 카테고리의 다른 글
백준16916 // cpp 문자열 포함검사 O(N+M), strstr vs find (0) | 2023.07.11 |
---|---|
백준 9934 완전이진트리 // 탐색결과를 트리로원복 (0) | 2023.06.28 |
백준 2529 부등호 // 재귀로 완탐구현 , string 정렬시주의 (0) | 2023.06.21 |
백준 1987 알파벳 // 노드가 각자의visit을 가져야한다면 원복! , dfs visit[now] [next]둘중 하나만 해라 (1) | 2023.06.13 |
백준 3197 백조의 호수 // bfs멈춰는 tempQ, 1차원에서 논리짜라, next경우의수를 나눠서 처리하라, pair Q 클리어하는법 (1) | 2023.06.13 |