#BOJ 1157 단어 공부
word = input().upper()
alphabets = list(set(word))
count_alphabets = []
for x in alphabets:
count = word.count(x)
count_alphabets.append(count)
max_num = max(count_alphabets)
if count_alphabets.count(max_num) > 1:
print("?")
else:
max_index = count_alphabets.index(max_num)
print(alphabets[max_index])
코드 설명
우선 대소문자를 구분하지 않는다고 하였고, 가장 많이 사용된 알파벳을 대문자로 출력한다고 하였으므로 입력된 모든 알파벳을 대문자로 바꿔준다.
set()
함수를 이용하여 입력된 알파벳들의 중복값을 없애준다.
count()
함수를 이용하여 입력된 단어에 각각의 알파벳이 몇 번 사용되었는지 세고, count_alphabets
리스트에 그 값을 저장해둔다. 이 때, alphabets[i]
에 들어있는 알파벳의 빈도는 count_alphabets[i]
에 들어있다.
count_alphabets
에 들어있는 값들 중 최댓값, 가장 많이 사용된 알파벳의 빈도수를 구한다. 이때 이 값을 가진 요소가 2개 이상 있으면 가장 많이 사용된 알파벳이 여러 개 존재하는 경우이므로 "?"를 출력한다.
최댓값 max_num
을 가진 요소가 하나라면 index()
함수를 이용하여 max_num
의 인덱스(=max_index
)를 찾고, alphabets[max_index]
로 가장 많이 사용된 알파벳을 구한다.