백준 1339 단어 수학

김민영·2023년 2월 9일
0

알고리즘

목록 보기
119/125

문제

  • N개의 알파벳 대문자로 이루어진 단어 수학 문제
  • 각 알파벳을 0~9 숫자 중 하나로 바꿔서 N개의 수를 합하기
  • 합한 수가 최대인 경우, 합을 출력하기

과정

  • 단어를 입력 받으며, 알파벳의 가중치를 배열에 더하며 저장한다.
    • AB면, A는 10의 자리에 있으므로 가중치는 10, B는 1의 자리에 있으므로 가중치는 1
  • 가중치가 저장된 배열을 큰 수부터 나오도록 sort한 후, 앞의 10개 숫자를 9부터 0까지 곱하며, 답에 더한다.
N: int = int(input())

lst: list = [0] * 26  # 각 알파벳의 가중치를 더해요

for _ in range(N):
    inp: str = input()
    for i in range(len(inp)):
        lst[ord(inp[i]) - 65] += 10 ** (len(inp) - i - 1)

lst.sort(reverse=True)

ans: int = 0
for i in range(10):
    ans += lst[i] * (9 - i)

print(ans)
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글