728x90
string = input().upper() # 대소문자 구분 안하는데 대문자로 출력하므로 대문자로 고정
alpha = dict()
for ch in string: # 알파벳이 각각 몇 개 있는지 확인
if not ch in alpha:
alpha[ch] = 0
alpha[ch] += 1
alpha = sorted(alpha.items(), key=lambda x:x[1]) # 딕셔너리의 값으로 정렬
max_ch,max_val = alpha.pop() # 마지막 값이 가장 큰값이므로 알파벳과 값 저장
if alpha==[]:
print(max_ch)
elif max_val == (alpha.pop())[1]:
print("?")
else:
print(max_ch)
원래는 if alpha==[]:를 넣지 않았으나 string이 딱 하나만 있는 경우에 런타임 에러가 떠서 끼워 넣었다.
생각보다 오래걸려서 다른 사람이 어떻게 했는지 봤는데 굳이 딕셔너리 안쓰고 리스트 두개써서 사용하거나 set을써서 사용해서 시간을 줄였더라... 똑똑한 사람들
# 타인의 코드 1
word = input().upper()
S = list(set(word))
cnt = []
for v in S:
cnt.append(word.count(v))
if cnt.count(max(cnt))>=2:
print('?')
else:
print(S[(cnt.index(max(cnt)))])
# 타인의 코드 2
s = input().upper()
a = []
for i in range(65, 91):
a.append(int(s.count(chr(i))))
if (a.count(max(a)) > 1):
print("?")
else:
print(chr(a.index(max(a)) + 65))
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 2941 크로아티아 알파벳 (0) | 2021.02.01 |
---|---|
[백준] 10809 알파벳 찾기 (0) | 2021.02.01 |
[백준] 8958 OX 퀴즈 (0) | 2021.01.30 |
[백준] 1475 방 번호 (0) | 2021.01.30 |
[백준] 1075 나누기 (0) | 2021.01.30 |