백준 1157: 단어공부 | Python 파이썬

유경의 공부방·2022년 6월 26일
0

python

목록 보기
11/13

단어 공부


문제

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


입력

첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.


출력

첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.


풀이

import statistics  #통계 모듈

a = input()
a = a.upper()

if (len(statistics.multimode(a))>=2):
    print('?')
else:
    print(statistics.mode(a))

코드설명

statistics 통계모듈을 사용이 더 편할 것 같아 모듈을 사용했습니다.
a를 대문자로 전환합니다.

multimode 함수는 최빈값을 알려주는데 최빈값이 두 개 이상일 때도 값들을 순서대로 출력합니다. 때문에 multimode의 길이가 2개 이상이면 ?을 출력합니다.

mode 함수도 multimode 함수와 비슷한데 최빈값이 두 개 이상일 경우 맨 처음 나온 값만 출력합니다. 따라서 최빈값이 하나일 때만 사용하게 했습니다!

0개의 댓글