[백준/파이썬] 1157번 단어 공부 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 1157번 단어 공부
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
주어진 단어에서 알파벳을 대소문자 구분 없이 세어 가장 많이 나온 알파벳을 출력하는 문제입니다.
최댓값이 여러 개면 ?를 출력합니다.
코드
from collections import Counter
s = list(input())
for i, ch in enumerate(s):
if ch > 'Z':
s[i] = chr(ord(ch)-(ord('a')-ord('A')))
else :
s[i] = ch
mosts = Counter(s).most_common()
try:
if mosts[0][1] == mosts[1][1]:
print('?')
else :
print(mosts[0][0])
except IndexError:
print(mosts[0][0])
설명
문자를 모두 대문자로 통일한 뒤 Counter로 빈도를 셉니다.
가장 많은 문자 1위와 2위의 개수가 같으면 ?,
다르면 1위 문자를 출력합니다.
단어 길이가 1인 경우를 위해 예외 처리도 포함되어 있습니다.
댓글남기기