![](https://velog.velcdn.com/images/jw3418/post/539a4caa-518b-49fc-8524-9c01f026007b/image.png)
- 자릿수가 큰 곳에 위치한 알파벳에 큰 숫자를 매칭해줘야함
-> assn 딕셔너리를 통해 words의 word를 순회하며 각 알파벳들의 자릿수에 따른 level을 계산해줌 (아래 두 사진처럼)
![](https://velog.velcdn.com/images/jw3418/post/b099e673-280d-42e7-bbce-f19b77124f81/image.png)
![](https://velog.velcdn.com/images/jw3418/post/039eee78-cc7e-46c5-bc56-bc216a22dec3/image.png)
- dictionary를 value에 따라 내림차순으로 정렬해줌
sorted(assn.items(), key=lambda x: x[1], reverse=True)
- sorted_dict를 순회하면서 9, 8, 7, ... 순서로 각 알파벳에 숫자를 할당해주고 합을 구함
import sys
from collections import deque
N = int(input())
words = []
for i in range(N):
tmp = list(sys.stdin.readline()[:-1])
words.append(tmp)
assn = dict()
for word in words:
for i in range(len(word)):
number = 10 ** (len(word) - i - 1)
if word[i] in assn:
assn[word[i]] += number
else:
assn[word[i]] = number
sorted_dict = sorted(assn.items(), key=lambda x: x[1], reverse=True)
answer = 0
for i in range(len(sorted_dict)):
answer += sorted_dict[i][1] * (9 - i)
print(answer)