2023.04.15 풀이
import sys
input=sys.stdin.readline
arr=[0]*(26)
s=input().rstrip()
for i in s.upper():
arr[ord(i)-65]+=1
if arr.count(max(arr))!=1:
print('?')
else:
print(chr(arr.index(max(arr))+65))
- 알파벳 개수만큼의 길이를 선언한 배열
- 입력받은 문자열 -> 대문자 -> 숫자로 바꾼 후 숫자에 해당하는 인덱스의 값+=1
- 다시 문자열로 바꾸는게 조금 유연하지 못했는데(마지막줄)
배열의 최대값을 가진 index를 구한 후 index를 문자열로
다른풀이
import sys
input = sys.stdin.readline
s = input().strip().upper()
muc, mucc = None, 0
for i in range(26):
c = chr(ord('A') + i)
cnt = s.count(c)
if cnt == 0:
continue
if muc != c and mucc == cnt:
muc = '?'
elif mucc < cnt:
muc = c
mucc = cnt
print(muc)
a = input().upper()
ab = list(set(a))
maxi = []
for i in ab:
count = a.count(i)
maxi.append(count)
if maxi.count((max(maxi))) > 1:
print('?')
else:
print(ab[maxi.index(max(maxi))])
check point
- range index 오버되는 에러 : 또또 rstrip() ...
- 다른풀이-2 처럼 문자->숫자, 숫자->문자로 바꾸지 않아도 풀 수 있는 풀이