알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.
import sys
sys.stdin = open("input.text", "rt")
data = input()
data = data.upper()
res = dict()
for x in data:
if x in res.keys():
res[x] += 1
else:
res[x] = 1
temp = res.values()
max_data = max(temp)
cnt = 0
for x in temp:
if x == max_data:
cnt += 1
result = ""
for key, value in res.items():
if value == max_data:
result = key
if cnt >= 2:
print("?")
else:
print(result)
upper 메서드를 사용하여 전체 문자를 대문자로 변환.
중복을 제거한 문자만을 저장해서 카운트 한다는 생각 했으면 set을 이용했으면 됐음
나는 그냥 있는 그대로 다 돌면서 dict를 활용해서 개수를 저장했다.
import sys
sys.stdin = open("input.text", "rt")
data = input()
data = data.upper()
data_set = list(set(data))
cnt = []
for x in data_set:
count = data.count(x)
cnt.append(count)
flag = 0
max_data = max(cnt)
for x in cnt:
if x == max_data:
flag += 1
if flag >= 2:
print("?")
else:
res = data_set[cnt.index(max_data)]
print(res)