728x90
📌 문제
https://www.acmicpc.net/problem/1339
📌 문제 접근 방법
- 처음에는 맨 앞에 나온 알파벳에 가장 큰 숫자를 대입했다.
- 하지만,
이러한 입력 값이 들어온다면 틀리게 된다.''' 10 ABB BB BB BB BB BB BB BB BB BB '''
- 따라서, 각 자리수마다 들어오는 알파벳을 리스트에 넣고 해당 자리의 값을 곱하여 계산하였다.
- 계산값이 가장 큰 값부터 큰 숫자를 대입하면 가장 큰 숫자를 찾을 수 있다.
📌 코드
from collections import defaultdict
N = int(input())
words = []
max_len = 0
for _ in range(N):
temp = input()
words.append(temp)
max_len = max(max_len, len(temp))
# 각 자리수에 계산될 알파벳
calculate = [[] for _ in range(max_len)]
for word in words:
start = max_len - len(word)
for i in range(start, max_len):
calculate[i].append(word[i-start])
# print(calculate)
cnt = defaultdict(int)
for j in range(max_len):
for alpha in set(calculate[j]):
cnt[alpha] += calculate[j].count(alpha) * 10**(max_len-1-j)
cnt_value = sorted(cnt.values(), key=lambda x : -x)
# print(cnt_value)
answer = 0
number = 9
for value in cnt_value:
answer += number*value
number -= 1
print(answer)
728x90
'ALGORITHM > BAEKJOON' 카테고리의 다른 글
[BOJ/Python] 16234. 인구 이동 (0) | 2021.10.07 |
---|---|
[BOJ/Python] 1240. 노드사이의 거리 (0) | 2021.10.04 |
[BOJ/Python] 1520. 내리막 길 (0) | 2021.10.04 |
[BOJ/Python] 2960. 에라토스테네스의 체 (0) | 2021.10.04 |
[BOJ/Python] 1600. 말이 되고픈 원숭이 (0) | 2021.10.04 |
댓글