문제1157
문제
- 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
해결
- 문자의 개수를 카운팅 하는 배열을 만든다 (알파벳은 26자)
- 아스키 코드 값에 대문자 번호는 65 ~ 90 / 소문자 번호는 97 ~ 122 이다.
- 해당 문자가 대문자 인지 소문자 인지 구분하여 해당 아스키 코드 값으로 나머지를 나누어 배열에 카운팅
- 문자열을 전부 스캔 하면 만약 max 값이 2개 이상으로 나온다면 ? 를 출력한다
- 2개 이상이 아니라면 해당 문자열을 index + ord('A') 를 더하여 해당 문자를 chr 함수로 표현 한다.
sentence = input()
alpha = [0] * 26
for s in sentence:
ord_ = ord(s)
if 65 <= ord_ <= 90:
alpha[ord_ % 65] += 1
continue
if 97 <= ord_ <= 122:
alpha[ord_ % 97] += 1
continue
if alpha.count(max(alpha)) > 1:
print('?')
else:
print(chr(alpha.index(max(alpha)) + 65))