https://www.acmicpc.net/problem/1157
문자열에 관련된 문제로
대소문자로 된 단어가 주어지면 가장 많이 사용된 알파벳을 찾아내는 문제이다.
📃 조건
딕셔너리를 이용해 풀어봐야겠다고 생각이 들었다.
{ A: 1, B: 2} 이런 식으로 구별하고 value값이 가장 큰 key값을 가져와서 구별했다.
word = input()
word = word.upper()
alphabets = {}
for alphabet in word:
if alphabet in alphabets:
alphabets[alphabet] += 1
else:
alphabets[alphabet] = 1
most_alphabet = [k for k, v in alphabets.items() if v == max(alphabets.values())]
if len(most_alphabet) == 1:
print(most_alphabet[0])
else:
print("?")
딕셔너리를 사용하고 value값을 찾는 시간 때문에 다른 사람의 3배의 시간이 걸리고 말았다...ㅠ
다른 사람들의 풀이에는 아스키 코드를 사용하는 사람도 있었고 "ABCDEFG~~YZ"로 하나씩 대조해서 몇 개가 들었는지 구별했다.
딕셔너리를 공부할 수 있어 좋았지만 시간 복잡도에 대해 다시 생각해봐야할 문제라고 생각된다.
2021.08.22