백준 알고리즘

백준 1157 파이썬

KokoaJelly 2023. 1. 24. 21:55

https://www.acmicpc.net/problem/1157

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

 

input_data = input().upper()
what_word = list(set(input_data))
blank_list = []

for i in what_word:
    blank_list.append(input_data.count(i))

if blank_list.count(max(blank_list)) > 1:
    print('?')

else: 
    max_location = blank_list.index(max(blank_list))
    print(what_word[max_location])

생각보다는 조금 까다로운 문제다. 먼저, 대문자 소문자를 구분하지 않으니 모두 대문자를 만들어주고, set을 이용하여 중복을 제거한다. 그 다음 빈 리스틀를 만들어주고, 입력 받은 데이터에 각각 문자의 개수를 세서 빈 리스트에 넣어준다. 그렇게 빈 리스트의 max의 개수가 2개 이상이면 ?를 출력하고, 아니면 index 함수를 이용하여 위치를 찾은 후, 그 위치에 맞는 문자를 print 해주면 된다.