https://www.acmicpc.net/problem/1157
toLowerCase로 전부 소문자로 바꿔줬다.
문자열을 쪼개서 각각 어떤 단어를 사용했는지 알아봐야하기 때문에 문자열 길이만큼 반복문을 돌린다.
alpha배열 안에 같은 단어면 증가하도록 설정했다.
max값을 -1로 하고 alpha배열 안에 값이 더 크다면 배열값이 max가 되도록 조건을 준다.
여러개일 경우 ? 아닌경우 해당 문자를 출력하도록 한다.
대문자이기 때문에 'A'를 더해야한다.
package com.example.baekjoon;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next().toLowerCase();
int alpha[] = new int[26];
int max = 0;
char c = '?';
for(int i = 0; i < s.length(); i++){
alpha[s.charAt(i) - 'a']++;
}
for(int i = 0; i < 26; i++){
if(max < alpha[i]) {
max = alpha[i];
c = (char) (i + 'A');
}
else if(max == alpha[i])
c = '?';
}
System.out.println(c);
}
}
문자열을 쪼개고 각각 증가시켜야한다는 건 알았지만 구현을 어떻게 해야할지에서 막혔다.
아직 alpha[s.charAt(i) - 'a'] 라는 생각을 잘 못하는 거 같다.
https://st-lab.tistory.com/64 님을 참고하였다.