https://www.acmicpc.net/problem/1157
from collections import Counter
def solution(s):
s = s.upper()
common = Counter(s).most_common(2)
if len(common) == 2 and common[0][1] == common[1][1]:
return '?'
else:
return common[0][0]
print(solution(input()))
1. 먼저 단어 s를 대문자로 바꿔주고, Counter를 사용하여 s의 각 알파벳 개수를 구합니다.
2. Counter의 most_common을 통해 가장 많이 출현한 알파벳 수 2개를 common 변수에 설정합니다
(예: Mississipi 라면 [('I', 4), ('S', 4)], Zz라면 단순히 [('Z', 2)] 1개).
3. 이후 Mississipi처럼 common의 길이가 2개이고, 가장 많이 출현한 알파벳도 2개라면 그대로 "?" 출력합니다.
그게 아니라면 제일 첫번째 common의 알파벳을 출력합니다.
'Algorithm' 카테고리의 다른 글
[파이썬] 백준 9037번: The candy war (0) | 2023.12.16 |
---|---|
[파이썬] 백준 1072번: 게임 (0) | 2023.12.12 |
[파이썬] 백준 1436번: 영화감독 숌 (0) | 2023.11.21 |
[파이썬] 백준 1158번: 요세푸스 문제 (0) | 2023.11.19 |
[파이썬] 백준 7785번: 회사에 있는 사람 (0) | 2023.11.08 |