알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
입력이 대소문자로 이루어진 문자열인데 출력이 대문자이기 때문에 초반에 대문자로 바꿔주는 것이 좋다. 그 뒤에 해당 알파벳의 갯수를 저장할 26길이의 배열을 선언하여 갯수를 넣어준다.
최댓값을 찾아주는 과정에서 boolean 변수를 사용하여 최댓값이 2개 이상인 것이 있는지 판별하는 것을 넣어준다. 최종적으로 boolean 변수가 false일 때 최댓값과 해당 알파벳을 출력하면 되는데 이때는 'A' 에 인덱스를 더해준 값을 문자로 출력하면 된다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
str = str.toUpperCase();
int[] count = new int[26];
int max = 0, index = -1;
for (int i = 0; i < str.length(); i++) {
count[str.charAt(i) - 'A'] += 1;
}
boolean check = false;
for (int i = 0; i < count.length; i++) {
int cnt = count[i];
if (max == cnt) {
check = true;
} else if (max < cnt) {
max = cnt;
index = i;
check = false;
}
}
if (check) {
System.out.println("?");
} else {
int ans = 'A' + index;
System.out.println((char) ans);
}
}
}