알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
내가 선택한 접근 방식은
(1) alpha[26] 배열을 만들고 0으로 기본 값 셋팅
(2) 그리고 알파벳이 나올 때마다 +1 해주기
(3) 가장 높은 값을 대문자로 리턴하기 -> 혹시 가장 높은 값이 여러개라면 ? 로 나타내기
#include <iostream>
using namespace std;
int main(){
string str;
cin>>str;
int alpha[26]={0};
for(int i=0;i<str.length();i++){
str[i]=toupper(str[i]);
}
for(int i=0;i<str.length();i++){
int index = str[i]-'A';
alpha[index]+=1;
}
int maxValue = 0;
for(int i=0;i<26;i++){
maxValue= max(maxValue,alpha[i]);
}
int count = 0;
int idx = 0;
for(int i=0;i<26;i++){
if(alpha[i]==maxValue){
count+=1;
idx = i;
}
}
if(count==1){
char ch = (char)(idx+'A');
cout<<ch;
}else{
cout<<'?';
}
}