코딩테스트 준비

[완전탐색] 프로그래머스 - 모음사전

402번째 거북이 2022. 8. 8. 16:08

해결포인트✨

 

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