문제
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
아이디어
- alphabet 배열을 만든다.
- 입력(무조건 소문자로 변환) & 문자열의 리스트화
- 각 칸을 숫자로 변환. alphabet[숫자] += 1
- 새 배열 x 만들기
- for문 돌기
- 만약 알파벳[i]가 alphabet의 최대와 같다면 x에 (i+65 → 대문자) 한 걸 추가 (출력을 대문자로 해야 하므로)
- 배열 x의 길이가 1보다 큰지 판단
- 맞다면 가장 많은 문자가 여러 개 → ? 출력.
- 아니면 배열의 0번째 문자 출력
코드
python
"""단어 공부"""
alphabet = [0] * 26
word = list(input().lower())
for w in word:
alphabet[ord(w)-97] += 1
x = []
for i in range(26):
if alphabet[i] == max(alphabet):
x.append(chr(i + 65))
if len(x) > 1:
print("?")
else:
print(x[0])