-문제 : https://www.acmicpc.net/problem/1339

 

Gold Level4 문제이고, 어려웠던 문제다 

문제 아이디어로는 왼쪽에서부터 진행하고, 각 문자에 대한 10의 자리 값을 dictionary에 저장한다. 

dictionary에 있으면 원래 값에 새로운 값을 더하고, 아니라면 값을 입력한다 

이때 range(len(alpha_dict)) 랑 len(alpha[i])-j-1 쓸때 주의하자 

여기서 많이 틀렸음

 

10자리 수들을 numList에 저장하고, 내림차순으로 정렬한다

9부터 하나씩 줄여가면서 값을 numList의 값에 곱해주고 더해주면 정답이다

 

-정답 풀이 : 

n=int(input())
alpha=[]
alpha_dict={}
numList=[]

for _ in range(n):
    alpha.append(list(input()))
    
for i in range(n):
    for j in range(len(alpha[i])):
        if alpha[i][j] in alpha_dict:
            alpha_dict[alpha[i][j]] += 10**(len(alpha[i])-j-1)
        else:
            alpha_dict[alpha[i][j]] = 10**(len(alpha[i])-j-1)
            
for val in alpha_dict.values():
    numList.append(val)
    
numList.sort(reverse=True)

power=9
answer=0
for i in range(len(numList)):
    answer += power*numList[i]
    power-=1
print(answer)

+ Recent posts