131.単語数学
5649 ワード
白駿
1. Python
n = int(input())
words = [input() for _ in range(n)]
dict = {}
#딕셔너리에 알파벳당 숫자 집어넣기
for word in words:
k=len(word)-1
for s in word:
if s in dict:
dict[s]+=pow(10,k)
else:
dict[s]=pow(10,k)
k-=1
nums=[]
#사전의 값들만으로 이루어진 리스트 초기화하기
for value in dict.values():
nums.append(value)
#숫자 큰순으로 정렬하기
nums.sort(reverse=True)
#출력할 값과 곱해야하는 수 초기화하기
result,t=0,9
#값 구하기
for i in range(len(nums)):
result+=nums[i]*t
t-=1
print(result)
2. C++
// 알파벳이 주어지면
// 알파벳별로 숫자를 하나씩 매핑해보는게 일입니다.
// 최대 10개가 주어지는데....경우의수?????
// 이렇게 만든 경우의수에 대해서
// 직접 숫자을 대입해서 합을구하고, 최대값을 찾는다....
// 두번째 ==> 숫자를 그대로이용하는 방법
// ABCD : 1000 * A + 100 * B + 10 * C + D
// GCD : 100 * G + 10 * C + D
// EFABC : 10000 * E + 1000 * F + 100 * A + 10 * B + C
// ----------------------------------------------------
// 1100 * A + 110 * B + 21 * C + 2 * D + 10000 * E + 1000 * F + 100 * G
Reference
この問題について(131.単語数学), 我々は、より多くの情報をここで見つけました https://velog.io/@corone_hi/131.-단어-수학テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol