문제:

영어에서는 어떤 글자가 다른 글자보다 많이 쓰인다. 예를 들어, 긴 글에서 약 12.31% 글자는 e이다.

어떤 글이 주어졌을 때, 가장 많이 나온 글자를 프로그램을 작성하시오.

 

입력:

첫째 줄부터 글의 문장이 주어진다. 글은 최대 5000글자로 구성되어 있고, 공백, 알파벳 소문자, 엔터로만 이루어져 있다 그리고 적어도 하나의 알파벳이 있다.

 

출력:

첫째 줄에 가장 많이 나온 문자를 출력한다. 여러 개일 경우에는 알파벳 순으로 앞서는 것부터 모두 공백없이 출력한다.

 

풀이방법:

 알파벳의 개수를 세는 크기가 26인 배열을 만들어서 해당하는 알파벳을 만날 때마다 해당하는 인덱스에 +1을 하도록 한다.( 예를 들면 a를 만나면 인덱스 0의 값을 +1한다.) 이렇게 모든 글을 탐색하고 난 뒤에 알파벳 배열의 max값과 일치하는 값들을 출력하도록 하게 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import sys
alpha=[0]*26
 
for line in sys.stdin:
    for s in line:
        if s==' ':
            continue
        elif s=='\n':
            continue
        idx=ord(s)-97
        alpha[idx]+=1
 
ans=max(alpha)
for i in range(len(alpha)):
    if alpha[i]==ans:
        print(chr(i+97),end='')
cs

문제링크:

https://www.acmicpc.net/problem/1371

'Algorithm > Python' 카테고리의 다른 글

[BOJ]1744. 수 묶기  (0) 2019.09.16
[BOJ]14501. 퇴사  (0) 2019.09.11
[BOJ]9933. 민균이의 비밀번호  (0) 2019.09.09
[BOJ]2178. 미로찾기  (0) 2019.09.08
[BOJ]2667. 단지번호붙이기  (0) 2019.09.07

+ Recent posts