알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
Mississipi
?
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] checkCount = new int[26]; // 단어의 개수를 세기 위해 배열 선언
String str = scan.next().toUpperCase(); // 대문자로 통일
char[] cArr = str.toCharArray(); // char로 변환
for(char c : cArr) {
checkCount[c-'A']++; // 단어의 개수만큼 count
}
int max = 0; // 가장 개수가 많은 단어를 판별하기 위해 선언
int idx = -1; // 가장 개수가 많은 단어의 인덱스를 알아내기 위해 선언
for(int i = 0; i < checkCount.length; i++) {
if(max < checkCount[i]) {
max = checkCount[i];
idx = i;
} else if (max == checkCount[i]) {
idx = -1;
}
}
if(idx == -1) {
System.out.println('?');
} else {
System.out.println((char)(idx + 'A'));
}
}
}