[백준] 1157번: 단어 공부

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

word = input().upper()
unique_word = list(set(word))

cnt_list = []
for u in unique_word:
    cnt_list.append(word.count(u))
if(cnt_list.count(max(cnt_list)) > 1):
    print('?')
else:
    max_index = cnt_list.index(max(cnt_list))
    print(unique_word[max_index])

전부 다 대문자로 바꿔주면서 입력 받는다.
unique_word는 set으로 중복되는 애들을 걸러낸다. 예제의 Mississipi 라면 MISP 가 들어가겠다. 물론 순서는 보장받지 못한다.

cnt_list 로 각 문자가 몇개 나왔었는지 저장한다. String.count()함수 사용했다.
저장 되는 순서는 unique_list가 M,I,S,P 순이라면, 이 순서대로 M의 개수, I의 개수.. 로 저장된다.

max가 1개보다 많으면 ? 출력하면 되고,
아니라면 max_index를 구해서 unique_word에서 찾아내면 된다. 순서가 같으니까.

좋은 웹페이지 즐겨찾기