-문제 : 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)
'백준 > Greedy' 카테고리의 다른 글
[그리디/백준] 1202번: 보석 도둑 (0) | 2022.07.01 |
---|---|
[그리디/백준] 1439번: 뒤집기 (0) | 2022.07.01 |
[그리디/백준] 4796번: 캠핑 (0) | 2022.06.29 |
[그리디/백준] 1715번: 카드 정렬 (0) | 2022.06.29 |
[그리디/백준] 1946번: 신입 사원 (0) | 2022.06.27 |