1339-단어수학
각 알파벳이 자리수마다 몇개가 있는지 자료를 만듦
Ex) [(A, 100100), (B, 10111), (C, 101)]
자료를 값의 2번째항 기준으로 내림차순 정렬
첫째 값부터 9, 8, 7,,, 곱해가며 더해주면 된다.
import sys
n = int(input())
# 모든 알파벳을 유니코드 순 숫자로 바꿔준다.
lst = [list(map(lambda x: ord(x)-65, sys.stdin.readline().rstrip())) for _ in range(n)]
# 알파벳 개수의 리스트를 만들어주고
alph = [0 for _ in range(26)]
# 각 알파벳의 자리수만큼 알파벳마다 더해준다.
for info in lst:
for i in range(len(info)):
alph[info[-1-i]] += 10**i
alph.sort(reverse=True)
rst = 0
i = 9
for info in alph:
if info:
rst += info*i
i -= 1
print(rst)
Last updated
Was this helpful?