영어에서는 어떤 글자가 다른 글자보다 많이 쓰인다. 예를 들어, 긴 글에서 약 12.31% 글자는 e이다.
어떤 글이 주어졌을 때, 가장 많이 나온 글자를 출력하는 프로그램을 작성하시오.
첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이상 있다.
첫째 줄에 가장 많이 나온 문자를 출력한다. 여러 개일 경우에는 알파벳 순으로 앞서는 것부터 모두 공백없이 출력한다.
import sys
a = sys.stdin.read()
res = [0]*26
for i in a:
if i.islower():
res[ord(i)-97] += 1
for i in range(len(res)):
# max 값은 int 이므로 최댓값과 같은 값을 가진 위치의 문자 출력
if res[i] == max(res):
print(chr(i+97), end='')
sys.stdin.read()
: 여러줄을 입력받기 위해 사용했으나 어떻게 종료시키는지 몰라 조금 헤맸다. 파이참에서 Ctrl+d
로 EOF (End Of File) 를 명시해주니 종료시킬 수 있었다.
islower()
: 문자열 전체가 소문자인지 판단해주고 True / False
로 리턴해준다.
chr()
: 아스키 코드 -> 문자열
ord()
: 문자열 -> 아스키코드
>>> ord('a')
97
>>> ord('z')
122
이므로 크기가 26인 리스트를 선언해준다.