Baekjoon/단계별로 풀어보기
[백준][6단계 심화 1] 1157번 /단어 공부 (파이썬/Python)
junslee
2025. 3. 25. 17:34
1. 문제 설명
2. 풀이 과정
word에 입력 단어를 소문자로 변환하여 받는다.
숫자의 빈도값을 넣을 딕셔너리를 char_frequency에 초기화한다.
word에 있는 문자 char을 반복해서 받는다.
char.isalpha()로 각 문자가 알파벳인지 확인한다.
char이 char_frequency에 있다면 char_frequency[char]에 1을 더한다.
없다면 char_frequency[char]을 1로 초기화한다.
최대 빈도수를 찾기 위해 max_frequency값을 max( char_frequency.values())로 딕셔너리의 값들 중에서 찾는다.
최대 빈도수에 해당하는 알파벳을 찾기 위해 most_frequent_chars에 char_frequency.items()로 char과 freq를 찾아 freq == max_frequency일때의 char값을 넣는다.
most_frequent_chars값이 여러 개이면 "?"를 출력하고
아니면 most_frequent_chars값을 대문자upper()로 출력한다.
3. 코드
word = input().lower()
char_frequency = {}
for char in word:
if char.isalpha():
if char in char_frequency:
char_frequency[char] += 1
else:
char_frequency[char] = 1
max_frequency = max(char_frequency.values())
most_frequent_chars = [char for char, freq in char_frequency.items() if freq == max_frequency]
if len(most_frequent_chars) > 1:
print("?")
else:
print(most_frequent_chars[0].upper())