쉬운 문제라고 생각했는데 생각보다 어려웠다.
문자를 아스키코드를 이용하여 int로 형변환 후 num 의 인덱스로 넣는 것은 쉽게 했다.
그런데 해당 인덱스 값(int)를 다시 아스키코드로 만드는데 시간이 걸렸다.
결국 c 언어 char 의 기본조차 제대로 이해못했었던 것 같다....
char(n)
으로 n 값에 i + 65 로 설정해서 다시 대문자를 넣어주었다.
문제를 너무 어지럽게 푼 것만 같아서 다른 풀이를 더 찾아봐야겠다..
#include <iostream>
#include <string>
#include <vector>
#include <charconv>
using namespace std;
int main(void)
{
ios::sync_with_stdio(false);
cin.tie(NULL);
string al;
cin >> al;
vector<int> num(1000,0);
int num2 = 0;
char an;
bool up= false;
for (int i = 0; i < al.size(); ++i)
{
al[i] = toupper(al[i]);
num[((int)al[i] - 65)]++;
}
for (int i = 0; i < 40; ++i)
{
if (num[i] > num2)
{
num2 = num[i];
an = char((i + 65));
up = false;
}
else if (num[i] == num2)
{
up = true;
}
}
if (up)
{
cout << "?";
}
else
{
cout << an;
}
return 0;
}