๐Ÿงฉ Algorithm/[BOJ] Gold

BOJ 1339๋ฒˆ : ๋‹จ์–ด ์ˆ˜ํ•™ (Python/Gold 4)

devCloud 2023. 7. 13. 20:57
728x90
 

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

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

www.acmicpc.net


์„ค๋ช…

์˜ˆ๋ฅผ ๋“ค์–ด, GCF + ACDEB๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค๊ณ  ํ•  ๋•Œ, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7๋กœ ๊ฒฐ์ •ํ•œ๋‹ค๋ฉด, ๋‘ ์ˆ˜์˜ ํ•ฉ์€ 99437์ด ๋˜์–ด์„œ ์ตœ๋Œ€๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

N๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ์ˆ˜์˜ ํ•ฉ์„ ์ตœ๋Œ€๋กœ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

ํ’€์ด

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹จ์–ด๊ฐ€ GCF์™€ ACDEB์ผ ๋•Œ, 

100*G + 10*C + F*1, 10000*A + 1000*C + 100*D + 10*E + B*1.

 

Solution

import sys
input = sys.stdin.readline

n = int(input()) #๋‹จ์–ด ๊ฐœ์ˆ˜
word = [] #๋‹จ์–ด๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์„œ ๋‹ด์„ ๋ฆฌ์ŠคํŠธ

for _ in range(n): #๋‹จ์–ด ์ž…๋ ฅ๋ฐ›๊ธฐ
    word.append(input().rstrip())

dict = {}
for i in range(n): 
    for j in range(len(word[i])):
        if word[i][j] in dict:
            dict[word[i][j]] += 10**(len(word[i])-j-1)
        else:
            dict[word[i][j]] = 10**(len(word[i])-j-1)

alpha = []
for i in dict.values(): #values() key์˜ value๋ฅผ ์–ป๊ธฐ ์œ„ํ•จ
    alpha.append(i)
alpha.sort(reverse=True) #๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ, ๋””ํดํŠธ๊ฐ’์€ ์˜ค๋ฆ„์ฐจ์ˆœ

sum = 0
max = 9
for i in alpha:
    sum += i*max
    max -= 1
print(sum)
728x90