Algorithm/Baekjoon

[Python] 1339. 단어 수학

느낌표 공장장 2022. 1. 15. 10:00
n = int(input())    # 단어의 개수

words = [[] for _ in range(8)]  # 단어를 자리 수별로 저장할 리스트
word_dic = {}   # 단어 값을 넣을 딕셔너리

for i in range(n):
    word = input()  # 단어 입력받기
    len_word = len(word)
    for j in range(len_word):
        words[7-j].append(word[len_word-j-1])   # words에 자리 별로 단어 넣어주기
        word_dic[word[j]] = word_dic.get(word[j], 0) + 10 ** (len_word-j-1) # 해당 자리에 맞는 값 넣기

numbers = []
for num in word_dic.values():   # 알파벳 빼고 값들만 가져와
    numbers.append(num) # 값들 다 넣기

numbers.sort(reverse=True)  # 내림차순 정렬 (큰 값부터 큰 수(9, 8, ..)를 곱해줄거니까)

answer = 0
num = 9 # 최댓값을 만들어야 하므로 9부터 시작
for i in numbers:
    answer += num * i   # 숫자 배정해서 값 더해나가기 
    num -= 1

print(answer)

'Algorithm > Baekjoon' 카테고리의 다른 글

[Python] 2211.네트워크 복구  (2) 2022.08.24
[Python] 9935. 문자열 폭발  (0) 2022.01.17
[Python] 2098. 외판원 순회 1  (0) 2022.01.15
[Python] 10971. 외판원 순회 2  (0) 2022.01.15
[Python] 14496. 그대, 그머가 되어  (0) 2022.01.14