[문제]
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
[입력]
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
[출력]
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
<예제 입력>
Mississipi
zZa
z
baaa
<예제 출력>
?
Z
Z
A
[소스코드]
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str = s.next();
char[] S = str.toCharArray();
int[] arr = new int[26]; //A~Z까지 26자 (0~25)
int count = -1;
char ch = '?';
for(int i=0; i<S.length; i++) { //대문자:65~90 소문자:97~122
if(S[i] >= 65 && S[i] <= 90)
{
arr[S[i]-65]++;
}
else if(S[i] >= 97 && S[i] <= 122) {
arr[S[i]-97]++;
}
}
for(int i=0; i<26; i++) {
if(arr[i] > count) {
count = arr[i];
ch = (char)(i + 65);
}
else if(arr[i] == count) {
ch = '?';
}
}
System.out.print(ch);
s.close();
}
}
'[백준] > java' 카테고리의 다른 글
[백준] 요세푸스 문제 0(11866) - java (0) | 2023.02.10 |
---|---|
[백준] 카드2(2164) - java (1) | 2023.02.10 |
[백준] 큐2(18258) - java (0) | 2023.02.10 |
[백준] 단어의 개수(1152) - java (0) | 2023.01.17 |
[백준] 문자열 반복(2675) - java (4) | 2023.01.17 |