출처 : https://www.acmicpc.net/problem/1157
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
Mississipi
?
zZa
Z
z
Z
import java.util.Arrays;
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[26];
String str = sc.next();
for(int i = 0 ; i < str.length(); i++){
int n = str.charAt(i);
if(n>='A' && n<='Z')
arr[n-'A']++;
else
arr[n-'a']++;
}
char ch = '?';
int max = -1;
for(int i = 0 ; i < 26 ; i++){
if(max < arr[i]){
max = arr[i];
ch = (char)(i + 65);
}else if(max == arr[i]){
ch = '?';
}
}
System.out.print(ch);
}
}