Algorithm problems, coding test/백준
[백준][1157][B1] 단어 공부
정수열
2022. 5. 22. 22:57
[문제]
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
[입력]
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
[출력]
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
파이썬 숙련도에 따라 코드가 천차만별로 변할 수 있는 문제이다.
그동안 배운 문법으로 구현해보자.
answer = ''
S = input()
S = S.upper()
alpha_list = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
count_list = [0 for i in range(26)]
for idx in range(len(S)):
for a_idx, alpha in enumerate(alpha_list):
if S[idx] == alpha:
count_list[a_idx] += 1
break
idx = count_list.index(max(count_list))
answer = alpha_list[idx]
#? 조건
count_list.sort(reverse=True)
if count_list[0] == count_list[1]:
answer = '?'
print(answer)
배운 점
idx = arr.index(max(arr)) #리스트에서, 인덱스를 찾는다, 최대값이 들어있는!