해결 과정
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())
다른 풀이
'Coding Test > 문제 풀이' 카테고리의 다른 글
[문제 풀이] 백준 14502 (0) | 2022.03.23 |
---|---|
[문제 풀이] 백준 5430 (0) | 2022.03.22 |
[문제 풀이] 백준 2493 (0) | 2022.03.22 |
[문제 풀이] 백준 7576 (0) | 2022.03.22 |
[문제 풀이] 백준 9251 (0) | 2022.03.22 |