https://www.acmicpc.net/problem/9046
문제 풀이
- 처음 입력받은 string값을 dic에 한글자씩 key값으로 두고 count합니다 (공백은 제외)
- dic에 string[i]값이 없는 경우엔 새로 key값 정의하여 value값 1로 설정
- string[i]값이 있는 경우엔 value값 += 1
- cf ) 공백을 제거하는 또다른 방법 replace => string = input(), string = string.replace(" ", "")
- value값 중 최대값을 max_value에 저장 후 for문으로 key, value를 돌리면서 value값이 max_value와 같을 때를 count한다
- count가 2이상이면 ?, 1이면 알파벳을 출력'
t = int(input()) # T
for _ in range(t): # 입력반복
string = input() # 입력 string값
dic = dict()
for i in range(len(string)): # string단어 개수 count
if string[i] == ' ':
continue
if string[i] in dic:
dic[string[i]] += 1
else:
dic[string[i]] = 1
max_value = 0 # count한 value값 중 최대값 찾기
for value in dic.values():
if max_value < value:
max_value = value
count = 0 # 최대값 2개이상인지 확인
result = '' # 출력값
for key, value in dic.items():
print(key, value)
if value == max_value:
count += 1
result = key
if count == 1:
print(result)
else:
print('?')