문제📖
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2Fc08dc145-c541-44b0-94e8-53dd5bea7158%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-03-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%2012.09.47.png)
풀이🙏
- 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하라.
- 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다.
- 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력하라.
- 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력하라.
- 단, 대문자와 소문자를 구분하지 않는다.
-> collections
모듈의 Counter
함수를 이용해 최빈값을 구했다.
-> 문제 조건에서 대소문자 구분이 없다해서 lower()
함수로 대문자를 모두 소문자로 치환시켰다.
-> list
에 최빈값을 append
하였으며 len
이 1일 경우에는 최빈값이 하나인 경우이므로 0번째 index
를 return
하고 그렇지 않은 경우에는 최빈값이 복수인 경우이므로 ?을 return
하도록 하였다.
-> upper()
함수로 가장 많이 사용된 알파벳을 대문자로 반환하였다.
코드💻
from collections import Counter
def most_common(word):
word = word.lower()
c = Counter(word)
nums = c.most_common()
maximum = nums[0][1]
result = [num[0] for num in nums if num[1] == maximum]
return result[0].upper() if len(result) == 1 else '?'
word = str(input())
print(most_common(word))
결과😎
![](https://velog.velcdn.com/images%2Fcosmos%2Fpost%2F0d0df1db-63f1-49a1-8f5d-2909884510f2%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-03-31%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%201.46.28.png)
출처 && 깃허브📝
https://www.acmicpc.net/problem/1157
github