BeakJoon/Python
[Python] 백준 #1157번: 단어 공부
쿼딩~
2023. 12. 2. 17:17
코드
input_string = input()
# 알파벳 개수를 저장할 딕셔너리 초기화
alphabet_count = {}
# 문자열 순회
for char in input_string:
# 소문자로 통일하여 처리
char = char.lower()
# 딕셔너리에 알파벳 추가 또는 개수 증가
alphabet_count[char] = alphabet_count.get(char, 0) + 1
# 가장 많이 나타난 빈도 찾기
max_count = max(alphabet_count.values())
# 가장 많이 나타난 빈도를 가지는 알파벳들 찾기
most_frequent_alphabets = [char for char, count in alphabet_count.items() if count == max_count]
# 대문자로 바꾸기
most_frequent_alphabets = most_frequent_alphabets.upper()
# 결과 출력
if len(most_frequent_alphabets) == 1:
print(*most_frequent_alphabets)
else:
print("?")
딕셔너리를 사용하여 입력받은 문자열에 알파벳을 저장할 공간을 할애하고, 딕셔너리에 알파벳의 추가 또는 개수를 증가시켰다.
그리고 `max_count`에 가장 많은 빈도를 찾고 이를 이용하여 `most_frequent_alphabets`에 가장 많은 빈도로 등장하는 알파벳을 저장하는데 사용하였다.
그 다음 if문을 사용하여 위에서 찾은 가장 많은 빈도로 등장하는 알파벳이 여러개일 경우, '?'를 출력하게 하고 1개일 경우 그 알파벳을 대문자로 출력하게끔 코드를 썼다.