ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

1339๋ฒˆ: ๋‹จ์–ด ์ˆ˜ํ•™

์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N(1 โ‰ค N โ‰ค 10)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ๋‹จ์–ด๋Š” ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. ๋ชจ๋“  ๋‹จ์–ด์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ์•ŒํŒŒ๋ฒณ์€ ์ตœ๋Œ€

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ๊ฐ ์•ŒํŒŒ๋ฒณ์ด ์ฃผ์–ด์งˆ ๋•Œ, ์–ด๋Š ์ž๋ฆฌ์— ์œ„์น˜ํ•˜๋Š๋ƒ์— ๋”ฐ๋ผ 0์—์„œ 9์˜ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ•ฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ ์ž๋ฆฟ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ํฐ ์•ŒํŒŒ๋ฒณ๋ถ€ํ„ฐ 9๋ถ€ํ„ฐ 0๊นŒ์ง€ ์ˆซ์ž๋ฅผ ๋ณ€ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์˜ˆ์ œ ์ž…๋ ฅ 2์˜ ๊ฒฝ์šฐ {'A': 10000, 'C': 1010, 'G': 100, 'D': 100, 'E': 10, 'F': 1, 'B': 1}์™€ ๊ฐ™์ด A, C, G, D, E, F, B ์ˆœ์œผ๋กœ 9์—์„œ 3๊นŒ์ง€์˜ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด, GCF + ACDEB๋Š” 784 + 98653๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

 

 ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ์ง์„ ๋”ฐ๋ฅด๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

  • defaultdict๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐ ์•ŒํŒŒ๋ฒณ์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ์ž๋ฆฟ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ํฐ ์•ŒํŒŒ๋ฒณ๋ถ€ํ„ฐ ์ •๋ ฌํ•˜์—ฌ, 9๋ถ€ํ„ฐ ์ˆซ์ž๋ฅผ ํ• ๋‹นํ•˜์—ฌ ๊ณ„์‚ฐํ•œ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin
from collections import defaultdict


if __name__ == '__main__':
    answer = 0
    n = int(stdin.readline())
    alphabet = defaultdict(int)
    change = [num for num in range(10)][::-1]

    for _ in range(n):
        word = stdin.readline().strip()
        length = len(word)
        for idx, w in enumerate(word):
            alphabet[w] += 10 ** (length - idx - 1)

    alphabet = dict(sorted(alphabet.items(), key=lambda x: x[1], reverse=True))
    print(alphabet)
    for c, cnt in zip(change, alphabet.values()):
        answer += c * cnt

    print(answer)
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€