풀이
1. 딕셔너리 구조를 이용하여 각 문자가 몇번이나 등장하는지 value에 저장한다.
2. 딕셔너리 value 값을 람다함수를 이용하여 내림차순으로 정렬한다.
3-1. 딕셔너리에 입력된 문자가 한개인 경우, 첫 번째 키(가장 많이 등장한 문자)를 대문자로 출력한다.
3-2. 딕셔너리에 입력된 문자가 여러개인 경우, 첫번째 키와 두번째 키의 value를 비교하여 동일한 경우 '가장 많이 사용된 알파벳이 여러개인 경우'에 해당하므로 '?'를 출력한다.
코드
string = input()
string = string.lower()
# print("string.lower() : {}".format(string))
D = dict()
for key in string :
# 이미 딕셔너리에 해당 알파벳이가 있는 경우
if key in D :
D[key] += 1
# 딕셔너리에 해당 알파벳이 없는 경우
else :
D[key] = 1
# 딕셔너리 value 내림차순 정렬 - 람다함수 이용
D = dict(sorted(D.items(), key = lambda x: x[1], reverse=True))
# 딕셔너리 첫번째 키 저장
first_key = list(D.keys())[0]
# 딕셔너리에 입력된 문자열이 여러개인 경우 - 2번째 키값이랑 비교하여 중복되면 ? 출력
if (len(D) > 1) :
second_key = list(D.keys())[1]
if (D[first_key] == D[second_key]) : print("?")
else : print(first_key.upper())
#딕셔너리에 입력된 문자열이 1개의 문자뿐인 경우 - 그냥 출력
else :
print(first_key.upper())
'Koala - 8기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 1270. 전쟁 - 땅따먹기 (0) | 2022.10.02 |
---|---|
[백준/python] 3181번 줄임말 만들기 (0) | 2022.10.02 |
[C++] 백준 2828번: 사과 담기 게임 (0) | 2022.10.02 |
[백준/Python] 1371번 가장 많은 글자 (0) | 2022.10.02 |
[백준/python] 23972 악마의 제안 (0) | 2022.09.25 |