[백준 #1339]: 단어수학(python)

jeyong·2023년 1월 13일
0

백준#1339:단어수학

import sys

index = int(sys.stdin.readline())
String = [(sys.stdin.readline().strip()) for _ in range(index)]
song={}
num=9
sum=0

for Str in (String):
    square=len(Str)-1
    for i in Str:
        if(i not in song):
            song[i]=10**square
            square-=1
        else:
            song[i]+=10**square
            square-=1

song=sorted(song.items(), key=lambda x: x[1], reverse=True)

for value in song:
    sum+=value[1]*num
    num-=1

print(sum)

이 문제에서 중요한 점은 알파벳의 우선순위를 정하는 것이다. 우선순위를 정하기위해서 입력된 알파벳마다 해당 자리수를 이용하여 가중치를 두었다. 그리고 크기순으로 정렬한 뒤 크기가 큰 순서대로 큰 수를 부여해주면 된다.

profile
천천히 잊어가기

0개의 댓글