Coding Test/문제 풀이
[문제 풀이] 백준 1339
EUNJI HA
2022. 3. 22. 20:44
해결 과정
10의 자리 숫자 별로 계산해서, dictionary를 만들었다.
{'F': 1, 'C': 1010, 'G': 100, 'B': 1, 'E': 10, 'D': 100, 'A': 10000}
이를 정렬하고, 9부터 내림차순으로 곱해주고 결과값을 구하면 된다.
나의 풀이
from collections import defaultdict
def solution():
N = int(input())
words = [input() for _ in range(N)]
dictionary = defaultdict(int) # {'A' : 100, 'B' : 1010, ... }
# dictionary 만들기
for word in words:
for idx, value in enumerate(reversed(word)):
dictionary[value] += 10 ** idx
# dictionary 정렬 후, 9부터 차례대로 부여하고, 정답 계산
num = 9
answer = 0
for item in sorted(dictionary.items(), key = lambda x: x[1], reverse=True):
answer += item[1] * num
num -= 1
return answer
print(solution())
다른 풀이