알고리즘/그리디
백준 1339 단어 수학 (Python)
한뜽규
2024. 2. 2. 20:36
728x90
https://www.acmicpc.net/problem/1339
1339번: 단어 수학
첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대
www.acmicpc.net
일의 자리는 * 1
십의 자리는 * 10
백의 자리는 * 100
으로 배열에 각 알파벳 마다 수를 계산해서 가지고 있는다.
그리고 큰 순으로 정렬을 해서 9, 8, 7, .... 이렇게 곱하기 해준 후 더해주면 된다.
import sys
word = [0 for i in range(ord('Z') - ord('A') + 1)]
for i in range(int(sys.stdin.readline().strip())):
input_word = str(sys.stdin.readline().strip())
cur_index = 1
while input_word:
word[ord(input_word[-1]) - ord('A')] += cur_index
cur_index *= 10
input_word = input_word[:-1]
word.sort(reverse=True)
result = 0
for i in range(10):
result += (word[i] * (9-i))
print(result)