출처 : https://www.acmicpc.net/problem/1371
1371번: 가장 많은 글자
첫째 줄부터 글의 문장이 주어진다. 글은 최대 50개의 줄로 이루어져 있고, 각 줄은 최대 50개의 글자로 이루어져 있다. 각 줄에는 공백과 알파벳 소문자만 있다. 문장에 알파벳은 적어도 하나 이
www.acmicpc.net

각 알파벳만큼 리스트의 인덱스를 만들어주고 해당 글자가 나올 때마다 하나씩 증가시켜준다.
ord를 이용해서 아스키코드 값으로 바꿔주고
소문자 알파벳 a가 97이니까 97을 빼준 값을 인덱스 번호로 한다.
그리고 입력이 중단되었을 때 except로 EOFError로 반복문을 중단시켜준다.
정답을 찾을 땐 값이 최댓값과 같은 경우 그때의 인덱스 값에 97을 더하고 chr을 이용해서 문자로 바꿔준다.
그리고 처음에 lst인덱스를 사전 순으로 받았기 때문에, ans리스트 안에도 사전 순으로 값이 들어가니까 그대로 출력해줬다.
# BOJ1371 가장 많은 글자
lst = [0]*26
while True:
try:
S = input()
for i in S:
if i != " ": # 공백이 아닌 경우에만
lst[ord(i)-97] += 1
except EOFError:
break
max_value = max(lst)
ans = []
for j in range(26):
if lst[j] == max_value:
ans.append(chr(j+97))
print(*ans,sep="")'알고리즘 > BOJ' 카테고리의 다른 글
| [BOJ / 백준] 11718번 그대로 출력하기 python / 파이썬 EOF Error (0) | 2022.08.01 |
|---|---|
| [BOJ / 백준] 2167번 배열의 합 python / 파이썬 2차원 배열 (0) | 2022.07.29 |
| [BOJ / 백준] 1032번 명령프롬프트 python / 파이썬 문자열 리스트 (0) | 2022.07.29 |
| [BOJ / 백준] 1789번 수들의 합 python / 파이썬 반복문 그리디 알고리즘 (0) | 2022.07.29 |
| [BOJ / 백준] 4592번 중복을 없애자 python / 파이썬 (0) | 2022.07.28 |
댓글