문제접근
•
map을 이용하여 각 알파벳 누적
•
map의 value값을 기준으로 내림차순 정렬하고 첫번째와 두번째가 같다면 ?, 같지 않다면 첫번째 key값 출력
놓쳤던 부분
코드
3688 KB
40 ms
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
#include <cctype>
#include <utility>
using namespace std;
bool cmp(const pair<char, int> &a, const pair<char, int> &b)
{
return (a.second > b.second);
}
int main(void)
{
string input;
map<char, int> m;
char answer;
int len;
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> input;
len = input.size();
for (int i = 0; i < len; i++)
{
if (m.find(toupper(input[i])) != m.end())
m[toupper(input[i])]++;
else
m[toupper(input[i])] = 1;
}
vector<pair<char, int> > v(m.begin(), m.end());
sort(v.begin(), v.end(), cmp);
if (v[0].second == v[1].second)
answer = '?';
else
answer = v[0].first;
cout << answer;
return (0);
}
C++
복사