[백준] 1339 단어수학

ganta·2021년 3월 20일

알고리즘 문제해결

목록 보기
8/24

✔️ 문제 링크

https://www.acmicpc.net/problem/1339

💡 핵심 아이디어

1️⃣ 알파벳마다 1로 일단 설정을 해 두워 합의 결과 시 해당 알파벳으로만 나올 수 있는 결과를 도출

2️⃣ 결과가 가장 큰 것부터 9부터 0까지 알파벳에 숫자를 부여하면 해당 결과값도 최대가 된다.

⭐️ 소스 코드

from collections import defaultdict
if __name__ == '__main__':
    N = int(input())
    str_list = []
    alpha_dict = defaultdict(int)
    ans = 0

    for i in range(N):
        temp = input()
        str_list.append(temp)

    for s in str_list:
        for i,c in enumerate(s):
            alpha_dict[c] += 10**(len(s) - (i+1))

    alpha_list = list(alpha_dict.items())
    alpha_list.sort(key = lambda x : x[1], reverse = True)
    temp = 9
    for v in alpha_list:
        ans += (temp * v[1])
        temp -= 1
    print(ans)

profile
한걸음씩 꾸준히

0개의 댓글