https://www.acmicpc.net/problem/1157
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
toUpperCase()를 사용해 대문자로 만들기toCharArray()를 사용해 문자 하나씩 배열에 넣기, A의 아스키코드가 65이므로 배열 26개를 만들어 65를 뺀 상태로 시작import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String word = sc.next().toUpperCase();
char[] arr = word.toCharArray();
int[] alphabet = new int[26];
for (char i : arr) {
alphabet[i - 65] += 1;
}
int max = 0;
char answer = 0;
for (int i = 0; i < 26; i++) {
if (alphabet[i] > max) {
max = alphabet[i];
answer = (char)(i+65);
} else if (alphabet[i] == max) { //
answer = '?';
}
}
System.out.println(answer);
}
}