1339번: 단어 수학

첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대

www.acmicpc.net


가장 큰 가치가 있는 알파벳부터 큰 숫자를 주는 것이 중요하다.

 

  1. 알파벳의 위치에 따라 값을 매겨 alpha에 저장해준다.
  2. alpha를 값에 따라 정렬하여 큰값부터 9~0을 매겨서 result를 만든다.

 

import sys
from collections import defaultdict
arr = []
N = int(input())
alpha = defaultdict(int)
for _ in range(N):
arr.append(input().rstrip())
for s in arr:
for i in range(len(s)):
alpha[s[i]] += 10**(len(s)-1-i)
alphalist = sorted(alpha.values(), reverse=True)
result = 0
num = 9
for a in alphalist:
result += num*a
num -= 1
print(result)
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기