

이번 문제는 가장 많이 사용된 알파벳을 대문자로 출력하고 가장 많이 사용된 알파벳이 여러개 존재하면 ?를 출력하는 문제입니다. 저는 이문제를 알파벳 26개를 배열로 만들어 놓고 문자열의 모든 문자들을 대문자로 변환 이후 문자열의 문자들을 하나씩 순회하면서 count를 하나씩 더해주고 순회 이후 같은게 있으면 ?를 출력하고 없다면 제일 많이 나온 알파벳을 출력합니다.
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main(void)
{
string word;
int c;
cin >> word;
sort(word.begin(), word.end());
transform(word.begin(), word.end(), word.begin(), ::toupper);
int count[26] = {0};
bool equal = false;
int max = 0;
for (int i = 0; i < word.length(); i++)
{
count[word[i] - 65]++;
}
for (int i = 0; i < 26; i++)
{
if (count[i] > max)
{
max = count[i];
c = i;
equal = false;
}
else if (count[i] == max)
{
equal = true;
}
}
if (equal)
cout << "?" << endl;
else
cout << char(c + 65) << endl;
return 0;
}