[Gold IV]
https://www.acmicpc.net/problem/1339
1339번: 단어 수학
첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대
www.acmicpc.net
풀이
딱 봐도 파이썬으로 풀면 편하겠다 싶어서 파이썬으로 조진(?) 문제.
단어를 받아오고, 자릿수에 따른 가중치(?)를 계산 후 내림차순으로 정렬하여
Greedy하게 숫자를 배정해 주었다.
AC.
N = int(input()) A = dict() words = [] for _ in range(N): word = list(input()) words.append(word) word = list(reversed(word)) for i, w in enumerate(word): if A.get(w): A[w] += pow(10, i) else: A[w] = pow(10, i) A = sorted(A.items(), key=lambda x: x[1], reverse=True) res = 0 for i, a in enumerate(A): res += a[1]*(9-i) print(res)