알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//A = 65, a = 97
int[] alpha = new int[26]; //alpha[0] => A, alpha[25] => Z
char[] str = br.readLine().toCharArray();
for (int i = 0; i < str.length; i++) { //소문자 -> 대문자
if ('a' <= str[i] && str[i] <= 'z') {
str[i] -= 32;
}
alpha[str[i] - 65]++;
}
int max = 0;
int idx = 0;
boolean flag = true;
for (int i = 0; i < 26; i++) {
if(max == alpha[i]){
flag = false;
continue;
}
if (alpha[i] > max) {
max = alpha[i];
idx = i;
flag = true;
}
}
if (!flag) System.out.println("?");
else System.out.println((char) (idx + 65));
}
}