Development/Algorithm

[백준] 1339번: 단어수학 (python)

jstar0525 2021. 5. 4. 07:21
반응형

www.acmicpc.net/problem/1339

 

1339번: 단어 수학

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

www.acmicpc.net

def make_score(N, word):
    
    score = {}
    
    for i in range(N):
        for j, e in enumerate(word[i]):
            s = 10**(len(word[i])-j-1)
            if not e in score:
                score[e] = s
            else:
                score[e] += s
                
    return score

def cal_max(score):      
    sorted_score = sorted(list(score.values()), reverse=True)
    
    result = 0
    for i , e in enumerate(sorted_score): 
        result +=  (9-i)*e
        
    return result

if __name__ == '__main__':

    N = int(input())
    word = [list(map(str,input())) for _ in range(N)]

    score = make_score(N, word)
    print(cal_max(score))
반응형