[백준 1339] 단어 수학

Junyoung Park·2022년 3월 6일
0

코딩테스트

목록 보기
199/631
post-thumbnail

1. 문제 설명

단어 수학

2. 문제 분석

십진수 자리 수는, 그 자리 수가 n이라고 할 때 digit10n1digit*10^{n-1}이므로 들어오는 수를 통해 해당 수가 전체에서 얼마나 카운트되는지 파악할 수 있다. 딕셔너리를 통해 빠르게 저장하자.

3. 나의 풀이

import sys

n = int(sys.stdin.readline().rstrip())
digits = {}
for _ in range(n):
    num = sys.stdin.readline().rstrip()

    for digit_exp, digit in enumerate(num[::-1]):
        digits_num = digits.get(digit, 0)
        digits_num += 10**digit_exp
        digits[digit] = digits_num

digits_cnt = list(digits.values())
digits_cnt.sort(reverse=True)
digits_assigned = 9
total = 0

for digit_cnt in digits_cnt:
    total += digits_assigned * digit_cnt
    digits_assigned -= 1

print(total)
profile
JUST DO IT

0개의 댓글