출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

 

이번 문제는 간단해 보였지만, 내가 생각하기에는 조금 복잡하게 했어야 했다:

w = input()
w = w.lower()

w_list = list(w)
list_words = list(set(w))

num_words = []

for i in list_words:
    num_words.append([w_list.count(i), i])

max_string = []

for i in range(len(num_words)):
    if num_words[i][0] == max(num_words)[0]:
        max_string.append(num_words[i][1])

if len(max_string) > 1:
    print('?')
else:
    print(max(num_words)[1].upper())

문자열을 입력하고, 이를 모두 소문자로 변환 시켜준다. 그 다음 이 단어를 하나는 평범한 리스트에 저장하고, 하나는 set()를 리스트에 저장해서 이 단어에 있는 단어들 하나하나만 확인할 수 있게 해준다.

 

다음으로는 num_words라는 리스트를 만들고, 여기에 [number of alphabet inside the string, the alphabet] 형식으로 리스트 안에 리스트를 저장한다.

 

입력된 문자 안에, 가장 많은 알파벳을 가진 단어를 max_string에 저장하게끔 하고, 이를 통해 만약 max_string 값이 1보다 크다는 것은 가장 많이 사용된 알파벳이 여러개 존재한다는 것이기 때문에 '?'를 출력하게끔 했고, 아니라면 그 해당 알파벳을 대문자로 출력하게끔 했다.