백준 알고리즘
백준 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 해주면 된다.