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
'๐งฉ Algorithm > [BOJ] Gold' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| BOJ 1715๋ฒ : ์นด๋ ์ ๋ ฌํ๊ธฐ (Python/Gold 4) (0) | 2023.09.04 |
|---|---|
| BOJ 10026๋ฒ : ์ ๋ก ์์ฝ (Python/Gold 5) (1) | 2023.05.14 |