본문 바로가기
DEVLOG/Algorithms

[BOJ 1157] 단어 공부 - 파이썬 풀이

2019. 9. 10.
반응형

문제 보기

 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

문제 해설

알파벳 소문자 a-z의 아스키코드는 97 ~ 122이고, 대문자 A-Z의 아스키코드는 65_90입니다.

아스키 코드 변환하는 방법은 2019/09/10 - [DEVLOG/Algorithms] - [BOJ 11654] 아스키 코드 - 파이썬 풀이

문자열에서 각 문자의 개수를 세는 방법은 count() 함수를 사용하는 것입니다.

"baaa"라는 문자열이 주어졌을 때, word.count('a')를 통해 'a'의 개수 3을 얻을 수 있습니다.

 

각 문자별로 개수를 리스트에 저장하고 최대값을 구합니다.

만약 그 최대값이 리스트에 여러개 존재한다면 ?를 출력합니다.

 

파이썬(Python) 풀이

alphabet_list = []
word = input()

for ascii_code in range(65, 91):
    alphabet_list.append(word.count(chr(ascii_code)))

for ascii_code in range(97, 123):
    alphabet_list[ascii_code-97] += word.count(chr(ascii_code))

max_count = max(alphabet_list)
if alphabet_list.count(max_count)>1:
    print('?')
else:
    print(chr(alphabet_list.index(max_count)+65))

 

반응형

댓글