실험실
  • [백준] 1339번: 단어 수학 - 파이썬
    2024년 11월 09일 11시 31분 46초에 업로드 된 글입니다.
    작성자: B1NK
    728x90
    • 백준 링크: 1339번: 단어 수학
    • solved.ac 난이도: 골드 IV
    • 시간 제한: 2 초
    • 메모리 제한: 256 MB

    문제

    민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다.

    입력

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

    출력

    첫째 줄에 주어진 단어의 합의 최댓값을 출력한다.

    코드

    import sys
    N = int(sys.stdin.readline())
    S = [sys.stdin.readline().strip() for _ in range(N)]
    words = {}
    for s in S: 
        x = len(s)-1
        for i in s :
            if i in words:
                words[i] += 10**x
            else :
                words[i] = 10**x
            x -= 1
    
    words_sort = sorted(words.values(),reverse=True)
    result = 0
    num = 9
    for k in words_sort:
        result += k * num
        num -= 1
    print(result)
    728x90
    댓글