반응형
문제
영어에서는 어떤 글자가 다른 글자보다 많이 쓰인다. 예를 들어, 긴 글에서 약 12.31% 글자는 e이다.
어떤 글이 주어졌을 때, 가장 많이 나온 글자를 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 글의 문장이 주어진다. 글은 최대 5000글자로 구성되어 있고, 공백, 알파벳 소문자, 엔터로만 이루어져 있다. 그리고 적어도 하나의 알파벳이 있다.
출력
첫째 줄에 가장 많이 나온 문자를 출력한다. 여러 개일 경우에는 알파벳 순으로 앞서는 것부터 모두 공백없이 출력한다.
예제 입력 1english is a west germaniclanguage originating in england and is the first language for most people in the united kingdom the united states canada australia new zealand ireland and the anglophone caribbean it is used extensively as a second language and as an official language throughout the world especially in common wealth countries and in many international organizations |
예제 출력 1a |
예제 입력 2baekjoon online judge |
예제 출력 2eno |
풀이
가장 많이 입력 받은 글자를 출력하는 문제이다.
다만, 줄 수가 입력에 있지 않아 끝내는 시점이 명확하지 않다.
따라서 줄 수 대신 텍스트를 한 번에 입력받을 수 있는 sys.stdin.read() 함수를 사용한다.
이후 공백과 개행 문자를 없애주고, 알파벳을 카운트한다.
카운트를 완료한 후에는 가장 큰 수를 세고,
동일한 수의 알파벳이 여러 개 있을 수 있으므로 순회하며 배열에 넣어준다.
그리고 배열을 정렬한 뒤 공백없이 출력하면 된다.
import sys
input = sys.stdin.read
s = input().replace("\n","").replace(" ","")
c = [0] * 26
for i in s:
c[ord(i)-97]+=1
maxx = max(c)
r = []
for i in range(len(c)):
if c[i] == maxx:
r.append(chr(i+97))
r.sort()
print(*r,sep="")
반응형
'알고리즘 연습 > 구현, 문자열' 카테고리의 다른 글
[프로그래머스 / 파이썬] 다트 게임 (2018 KAKAO BLIND RECRUITMENT) (0) | 2021.09.03 |
---|---|
[프로그래머스 / 파이썬] 비밀지도 (2018 KAKAO BLIND RECRUITMENT) (0) | 2021.09.03 |
[🥉1 / 백준 11655 / 파이썬] ROT13 (0) | 2021.08.28 |
[🥈5 / 백준 1292 / 파이썬] 쉽게 푸는 문제 (0) | 2021.08.26 |
[🥉1 / 백준 1977 / 파이썬] 완전제곱수 (0) | 2021.08.20 |