단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
시간 초과
s = input().lower()
result = {}
for i in s:
if i not in result:
result[i] = 1
else:
result[i] += 1
result = list(sorted(result.items(), key=lambda item: item[1], reverse=True))
if result[0][1] == result[1][1]:
print("?")
else:
print(result[0][0].upper())
리스트 -> 딕셔너리
빈도 계산 -> Counter
from collections import Counter
s = input().lower()
char_count = Counter(s)
max_count = max(char_count.values())
max_chars = [char for char, count in char_count.items() if count == max_count]
if len(max_chars) > 1:
print("?")
else:
print(max_chars[0].upper())