백준1339) 단어 수학

문석·2021년 2월 16일
0

Python3
뭔가 브루트 포스로 풀어야 할 것 같은 문제였는데 띵 하고 아이디어가 떠오름

문자에 10**(자릿수) 를 하여 저장해놓고 내림차순 정렬 후 9부터 넣어주면 된다.

dic = dict(sorted(dic.items(),key=lambda item:item[1],reverse=True))

이놈으로 dict를 정렬해서 쉽게 풀 수 있었당

n = int(input())
arr = []

dic = {}

for i in range(n):
    s = input()
    l = len(s)
    for j in range(l):
        if s[j] in dic.keys():
            dic[s[j]] += 10**(l-j-1)
        else:
            dic[s[j]] = 10**(l-j-1)
            
            
dic = dict(sorted(dic.items(),key=lambda item:item[1],reverse=True))

cnt = 9
ans_dic = {}
ans = 0
for key in dic.keys():
    ans+=dic[key]*cnt
    cnt-=1
    
print(ans)
        

    


        

0개의 댓글