📝 문제
💡 알파벳 대소문자로 된 단어가 주어지면,
이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오.
단, 대문자와 소문자를 구분하지 않는다.
⚙️ 입력 : 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다.
주어지는 단어의 길이는 1,000,000을 넘지 않는다.
⚙️ 출력 : 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다.
단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
✅ 풀이
word = list(input().lower())
unique = set(word)
u_dict = {}
for item in unique:
u_dict[item] = word.count(item)
li = [k for k, v in u_dict.items() if v == max(u_dict.values())]
if len(li) > 1:
print("?")
else:
print(li[0].upper())
💡 입력받은 문자열에서 중복을 제거하여 카운팅 용도로 뽑아냈다.
문자열에서 사용된 각 알파벳별로 카운팅하여 딕셔너리에 추가해주었고,
그 중 가장 많이 카운트된 알파벳을 추려냈다.
만약 최대 카운트 횟수를 가지는 알파벳이 여러 개라면 ?를,
하나라면 그 단어의 대문자를 뽑아주었다.