이 문제는 스스로 풀지 못했다. 처음에 풀이는 단순히 가장 큰 자릿수에 위치한 알파벳들부터 높은 숫자를 채우는 방식대로 풀려하였으나 정답이 아니었다.
자세한 풀이는 다음의 블로그를 참고하였다.
https://seongonion.tistory.com/111?category=852500
이 블로그의 글쓴이분도 처음엔 나와 비슷하게 풀이를 진행하였으나 동일한 이유로 틀리고 각 알파벳들의 자릿수를 합친 뒤 그 크기의 순서로 값을 할당하는 방식으로 문제를 푸셨다.
import sys
input = sys.stdin.readline
n = int(input())
alpha = []
value = {}
for _ in range(n):
alpha.append(list(input().rstrip()))
for alphabet in alpha:
for i in range(len(alphabet)):
if alphabet[i] not in value:
value[alphabet[i]] = 10 ** (len(alphabet) - 1 - i)
else:
value[alphabet[i]] += 10 ** (len(alphabet) - 1 - i)
value = sorted(value.items(), key=lambda x : x[1], reverse=True)
alpha_to_num = {}
num = 9
for i in value:
alpha_to_num[i[0]] = num
num -= 1
answer = 0
for j in alpha:
num = ""
for alphabet in j:
num += str(alpha_to_num[alphabet])
answer += int(num)
print(answer)