반응형
코드
import sys
n = int(input())
for _ in range(n):
dic = dict()
n_list = list(sys.stdin.readline().rstrip())
for i in n_list:
if i != " ":
if i in dic:
dic[i] += 1
else:
dic[i] = 1
a = sorted(dic.values(), reverse=True)
if (len(a)>1 and a[0] == a[1]) or len(a)==0:
print("?")
else:
print(max(dic,key=dic.get))
설명
딕셔너리를 만들어서 알파벳이 나올 때마다 딕셔너리에 이미 존재하는지 확인하고 총 몇 번 나오는지 저장했다. 처음에 빈칸이 나올 때도 딕셔너리에 저장을 하게 해서 오류가 났다. 그래서 따로 예외를 만들어줬다.
dic.values()를 기준으로 내림차순 정렬을 했다. 정렬을 했을 때 첫 번째 숫자와 두 번째 숫자가 같으면 빈번하게 나오는 문자가 여러 개라는 뜻이기 때문에 "?"를 출력하게 했다. 빈칸만 입력받은 경우도 "?"를 출력해줘야 한다.
만약 빈번하게 나오는 문자가 하나임이 확인이 됐다면 max(dic.key=dic.get))을 통해 가장 큰 값을 갖는 key를 출력하게 했다.
반응형
'알고리즘 > 문자열' 카테고리의 다른 글
[백준][Python] 4659번 비밀번호 발음하기 (0) | 2022.06.27 |
---|---|
[백준][Python] 16171번 나는 친구가 적다 (Small) (0) | 2022.06.27 |
[백준][Python] 20053번 최소, 최대 2 (0) | 2022.06.23 |
[백준][Python] 5597번 과제 안 내신 분..? (0) | 2022.06.23 |
[백준][Python] 10798번 세로읽기 (0) | 2022.06.22 |
댓글