백준 문풀
[Python] 그리디- 1339. 단어수학(골4)
브로코딩
2023. 8. 3. 19:16
https://www.acmicpc.net/problem/1339
1339번: 단어 수학
첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대
www.acmicpc.net
>>문제포인트
- 각 알파벳이 몇번 등장했는지 진수로 판단해야 하는 문제
---예를 들어 AAA라면-> A는 111(100+10+1)번 나왔음
- 많이 나온 횟수의 알파벳부터 9부터 차례로 곱해 result 출력
>>코드
n= int(input())
dict ={}
#출현 횟수를 십진수로 저장
for i in range(n):
word= input()
word_len= len(word)
for idx, j in enumerate(word):
if j in dict.keys():
dict[j]+=pow(10,word_len-1-idx)
else:
dict[j]=0
dict[j]+=pow(10,word_len-1-idx)
#value값으로 내림차순(많이 나온 알파벳부터)
word_sort = sorted(dict.items(), reverse=True, key= lambda x: x[1])
'''
2
GCF
ACDEB
word_sort 예시
[('A', 10000), ('C', 1010), ('G', 100), ('D', 100), ('E', 10), ('F', 1), ('B', 1)]'''
result=0
top=9
for i in word_sort:
result+=top*i[1]
top-=1
print(result)