public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine().toUpperCase();
int[] strCount = new int[26]; //알파벳 개수를 저장할 배열
for(int i=0; i<str.length(); i++){
char ch = str.charAt(i);
strCount[ch - 'A']++;
}
int maxCount = 0;
char mostStr = '?';
for(int i=0; i<strCount.length; i++){
if(strCount[i] > maxCount){
maxCount = strCount[i];
mostStr = (char) (i + 'A');
} else if(strCount[i] == maxCount) {
mostStr = '?';
}
}
System.out.println(mostStr);
}
}
풀이
- 일단 문장을 대문자로 다 바꾼다.
- 알파벳 개수만큼 정수 배열 strCount를 생성한다.
- strCount 루프를 돌면서 입력한 문자를 ch로 추출한다.
- strCount배열의 ch자리에 count를 올린다. ex) 입력한 문자 A - ‘A’는 A - 65 = 0 이므로 strCount[0]의 자리에 ++하는 것.
- 배열 자리에 count를 다 올렸으면 배열 for문을 돌면서 가장 큰 숫자가 있는 인덱스를 찾는다. 초기에 0으로 했으니 초기상태에서 시작
- 찾았다면 아스키코드로 다시 문자로 변환해서 return한다.
아스키코드 ‘A’는 65 , ‘a’는 97은 외우기
'💡 Algorithm > 백준' 카테고리의 다른 글
[JAVA] 백준 #10250 - ACM 호텔 (0) | 2023.10.19 |
---|---|
[JAVA] 백준 #2920 - 음계 (0) | 2023.10.17 |
[JAVA] 백준 #11720 - 숫자의 합 (0) | 2020.08.21 |
[JAVA] 백준 #10809 - 알파벳 찾기 (0) | 2020.08.21 |
[JAVA] 백준 #2675 - 문자열 반복 (0) | 2020.08.21 |
[JAVA ] 백준 #1157- 단어 공부 (0) | 2020.08.20 |