알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
word = input().upper()
문제에서 대소문자를 구분하지 않고, 최종적으로 대문자로 출력을 해 줘야 하기 때문에,
입력받은 시점에서 upper()를 사용해 대문자로 바꾸어 주었다.
s_word = list(set(word))
count_word = []
set을 이용해 중복을 없애고 다시 list로 만들어 주었다
s_word의 요소를 하나씩 확인하며 word 배열에 같은 요소가 몇개 있는지 확인해 count_word배열에 담아 줄 것이다
for k in s_word:
count_word.append(word.count(k))
if count_word.count(max(count_word)) > 1:
print("?")
else:
index = count_word.index(max(count_word))
print(s_word[index])
s_word의 요소를 하나씩 확인하며, word 배열안에 같은 요소의 수를 count_word 배열에 넣어준다
count_word 배열안의 숫자가 최대인 것이 가장 많이 등장한 알바벳이기 때문에 max함수를 이용해 최댓값을 찾아준다
단 최댓값이 2개 이상이라면 "?"를 출력해야 하기 때문에 max값의 갯수가 1보다 크다면 "?"를 출력한다
현재 count_word배열과 s_word 배열의 index가 일치하기 때문에 count_word의 max값의 index값을 찾아서 s_word를 출력해준다
word = input().upper()
s_word = list(set(word))
count_word = []
for k in s_word:
count_word.append(word.count(k))
if count_word.count(max(count_word)) > 1:
print("?")
else:
index = count_word.index(max(count_word))
print(s_word[index])