Dictionary 사용하는 문제다. Dictionary 개념만 들어봤지, 실제로는 처음 사용해봐서 꽤 난해했다.. Dictionary 자료형은 key-value를 쌍으로 가지는 자료형으로 알고리즘 문제에서 주로 횟수 세기 문제에서 많이 사용된다고 한다. Dictionary 자료형을 사용할 때 만약 Dictionary에 원소가 없을 때를 체크하는 조건문이 많이 사용되는데 이 경우에 defaultdict를 활용하여 초기값을 세팅하면 가독성 좋은 코드를 짤 수 있다. defaultdict에 대해서는 아래 내가 작성한 글을 참고하자.
참고 : Dictionary 초기값 지정
import sys
from collections import defaultdict
num_data = defaultdict(int)
n = 0
while True:
word = sys.stdin.readline().rstrip()
if word == '':
break
num_data[word] += 1
n += 1
num_data = sorted(num_data.items())
for key, value in num_data:
value = value/n*100
print(key, format(value, ".4f"))
시간복잡도 : O(NlogN)