문제
- N개의 알파벳 대문자로 이루어진 단어 수학 문제
- 각 알파벳을 0~9 숫자 중 하나로 바꿔서 N개의 수를 합하기
- 합한 수가 최대인 경우, 합을 출력하기
과정
- 단어를 입력 받으며, 알파벳의 가중치를 배열에 더하며 저장한다.
- AB면, A는 10의 자리에 있으므로 가중치는 10, B는 1의 자리에 있으므로 가중치는 1
- 가중치가 저장된 배열을 큰 수부터 나오도록 sort한 후, 앞의 10개 숫자를 9부터 0까지 곱하며, 답에 더한다.
N: int = int(input())
lst: list = [0] * 26 # 각 알파벳의 가중치를 더해요
for _ in range(N):
inp: str = input()
for i in range(len(inp)):
lst[ord(inp[i]) - 65] += 10 ** (len(inp) - i - 1)
lst.sort(reverse=True)
ans: int = 0
for i in range(10):
ans += lst[i] * (9 - i)
print(ans)