import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] alphabets = new int[26];
String input = (br.readLine()).toUpperCase();
for (int i = 0; i < input.length(); i++) {
if (input.charAt(i) >= 'A' && input.charAt(i) <= 'Z') {
alphabets[input.charAt(i) - 'A']++;
}
}
int max = 0;
char alphabet = '?';
for (int i = 0; i < alphabets.length; i++) {
if (alphabets[i] > max) {
max = alphabets[i];
alphabet = (char) (i + 65);
} else if (alphabets[i] == max) {
alphabet = '?';
}
}
System.out.println(alphabet);
}
}
예전에 풀어둔 문제를 포스팅을 안해서 포스팅할겸 다시 풀어보았다.
이전에는 Scanner
를 이용해 풀었는데 지금보니 확실히 BufferedReader
와 속도 차이가 난다.
풀이방식은 대소문자 구분을 하지 않으니까 대문자로 통일하여 알파벳과 같은 수를 가진 배열에 알파벳에 해당하는 자리에 갯수를 추가하여 배열을 돌며 가장 높은 수를 찾아 출력하는 방식이다.