해결포인트✨
1. 가능한 모든 단어사전의 순서가 어떻게 되는지 파악하는 것이 가장 중요했다. (길이, 알파벳 등)
2. 앞자리부터 시작해, 해당 단어 이전에 존재할 수 있는 단어 개수를 구해 반복적으로 더해주었다.
(가령 AEI의 순서를 구한다고 한다면,
A 이전에 존재할 수 있는 단어 수 (0),
AE 이전에 존재할 수 있는 앞자리가 A인 단어 수 (1*(5^0+5^1+5^2+5^3)),
AEI 이전에 존재할 수 있는 앞자리가 AE인 단어 수(2*(5^0+5^1+5^2))
를 더했다.)
3. 이전 단어 수 뿐 아니라 해당 단어도 고려해야 하기 때문에, 각 단계에서 1을 더 더해주어야 한다.
코드✨
import itertools
def solution(word):
word_lst = ["A","E","I","O","U"]
count=0
for i in range(len(word)):
count+=word_lst.index(word[i])*(sum(list(map(lambda x: 5**x, range(5-i)))))
count+=1
return count
'코딩테스트 준비' 카테고리의 다른 글
[완전탐색] 프로그래머스 - 소수찾기 (0) | 2022.08.08 |
---|---|
[완전탐색] 프로그래머스 - 카펫 (0) | 2022.08.08 |
[완전탐색] 프로그래머스 - 피로도 (0) | 2022.08.08 |
[Greedy] 프로그래머스 - 큰 수 만들기 (0) | 2022.08.08 |
[Greedy] 프로그래머스 - 조이스틱 (0) | 2022.08.08 |