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)
'알고리즘 > 그리디' 카테고리의 다른 글
백준 1202 보석 도둑 (Python) (1) | 2024.02.03 |
---|---|
백준 11000 강의실 배정 (Python) (1) | 2024.02.03 |
백준 1715 카드 정렬하기 (Python) (1) | 2024.01.31 |
백준 1946 신입사원 (Python) (1) | 2024.01.31 |
백준 16953 A → B (Python) (1) | 2024.01.31 |