본문 바로가기
알고리즘/BOJ

[BOJ / 백준] 1371번 가장 많은 글자 python / 파이썬 카운팅 정렬 구현

by seohmoon 2022. 7. 29.

출처 : 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="")

댓글