What I Learned/Algorithm Practice
[백준 - python] 1157번: 단어 공부
Interrobang
2022. 3. 15. 15:48
<문제 링크>
1157번: 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
www.acmicpc.net
<문제 풀이>
word = input().upper()
alphabet = list(set(word))
count_list = [word.count(i) for i in alphabet]
if count_list.count(max(count_list)) > 1:
print('?')
else:
print(alphabet[count_list.index(max(count_list))])


*key point: 대소문자를 구분하지 않는다는 조건이 있기 때문에 upper 메소드를 이용하여 모든 알파벳을 대문자로 변환하였다. set, list 함수를 이용해 주어진 단어에 있는 알파벳을 가지는 새로운 리스트를 생성하고, 이를 활용하여 기존 단어에 있는 각 알파벳의 수를 센다. 이 때 같은 개수이면 ?를 출력하도록 조건문을 작성한다. count_list의 경우 for문으로 작성해본 뒤 list comprehesion으로 더 간단히 작성 가능하여 수정하였다.