1157. 단어 공부
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
입력 : 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
출력 : 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다.
단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
ex)
입력1 :
Mississipi
출력1 :
?
입력2 :
baaa
출력2 :
A
풀이
word = input().lower()
word_list = list(set(word))
cnt = []
for i in word_list:
count = word.count(i)
cnt.append(count)
if cnt.count(max(cnt)) >= 2:
print('?')
else:
print(word_list[(cnt.index(max(cnt)))].upper())
- 대소문자를 구분하지 않기 위해 단어 word를 입력받고 lower()를 사용하여 모두 소문자로 만들어준 다음, 단어 word에서 set()를 사용해 중복된 단어를 제거한 word_list 를 생성해주었다.
두 번째로는 word_list 의 전체 범위 안에서 요소(= 단어) i 의 개수를 count 변수에 할당하여 cnt 리스트에 추가했다.
그리고 조건문을 사용하여 cnt 리스트에서 가장 많은 문자의 개수가 2개 이상이면 ? 를 출력하고
그렇지 않으면 word_list 의, cnt 리스트에서 가장 큰 값의 인덱스 값 요소를 upper()를 사용하여 대문자로 바꾸어 출력하게 했다.
'코딩테스트 문제풀이(Python)' 카테고리의 다른 글
백준 1676번 문제풀이 (파이썬) (0) | 2022.05.29 |
---|---|
백준 11655번 문제풀이 (파이썬) (0) | 2022.05.29 |
백준 11721번 문제풀이 (파이썬) (0) | 2022.05.29 |
백준 5218번 문제풀이 (파이썬) (0) | 2022.05.28 |
백준 10808번 문제풀이 (파이썬) (0) | 2022.05.27 |