알파벳 사용 빈도를 저장하기 위한 리스트를 선언한다.
대소문자를 구분하지 않으므로 입력된 단어를 모두 대문자로 바꿔준다.
For문을 돌며 입력된 단어의 각 문자별 사용 빈도를 세어준다.
이때 가장 많이 사용된 알파벳이 여러 개 일 땐 ?을 출력해야 하므로 알파벳 사용빈도가 저장된 배열을 내림차순으로 정렬 후, 첫번째와 두번째의 원소가 같으면 ?를 출력하고
그렇지 않을 경우엔 가장 많이 사용된 알파벳을 출력한다.
알파벳 사용 빈도를 저장하기 위한 리스트를 선언한다. 입력된 단어를 모두 대문자로 바꿔준 후,
For문을 돌며 입력된 단어의 각 문자별 사용 빈도를 세어준다.
이번엔 가장 많이 사용된 알파벳을 for문을 돌면서 구하는데, 가장 많이 사용된 알파벳이 새로 등장할 때마다 answer을 해당 알파벳으로 갱신해준다. 만일 최고 빈도수가 동일한 알파벳이 등장할 경우 answer는 ?로 갱신한다.
For문을 마치고 나면 answer를 출력해준다.
python
if __name__ == '__main__':
alpha = [0]*26
s = input()
s = s.upper()
for i in s:
alpha[ord(i)-65] += 1
tmp = sorted(alpha, reverse=True)
if tmp[0] == tmp[1]:
print("?")
else:
print(chr(alpha.index(max(alpha))+65))
java
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr = new int[26];
String S = sc.next().toUpperCase();
int max = -1, idx = 0;
char answer = '?';
for(int i = 0; i<S.length();i++){
int tmp = S.charAt(i)-65;
arr[tmp]++;
if(max<arr[tmp]){
max = arr[tmp];
answer = S.charAt(i);
}
else if(max==arr[tmp]){
answer = '?';
}
}
System.out.println(answer);
}
}