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개일 경우 그 알파벳을 대문자로 출력하게끔 코드를 썼다.