문자열이 입력될 시, 인덱스 0번부터 높은 숫자를 주면 된다. (0 ~ 9 사이)
ABC -> 987
다만, 첫 번째에 나온 문자에 0을 줄 수가 없다.
ABCDEFGHIJ
J
이럴 경우 J에 0을 주면, 문제에서 제시한 0으로 시작하는 수는 없다.
를 어기게 된다.
그러므로 문자열이 입력될 때, 첫 번째로 나온 문자인지 체크해준다.
크기가 가장 작은 값부터 뒤에서 확인하여, 첫 번째 시작이 아니라면, 그 값을 0으로 만들어 준다.
ABCDE
ECBA
A : 10001
B : 1010
C : 100
D : 10
E : 1001
A -> B -> E -> C -> D 순으로 합을 계산하면 된다.
import sys
read = sys.stdin.readline
n = int(read())
alpha = [[0, False] for _ in range(10)]
for i in range(n):
a = read().rstrip()
m = 1
alpha[ord(a[0]) - 65][1] = True
for j in range(len(a) - 1, -1, -1):
alpha[ord(a[j]) - 65][0] += m
m *= 10
alpha.sort(reverse=True)
if alpha[9][1]:
for i in range(8,-1,-1):
if not alpha[i][1]:
del alpha[i]
break
answer = 0
for i in range(9):
answer += alpha[i][0] * (9-i)
print(answer)