개발/algorithm

[프로그래머스][level2] 모음사전 - python

zzi_on2 2022. 3. 29. 20:50

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/84512

 

코딩테스트 연습 - 모음사전

사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니

programmers.co.kr

풀이

- 중복 순열 사용

 

1. 1-5개의 모음으로 만들 수 있는  중복 순열 조합 구하고 하나의 문자열로 연결하여 dic에 저장  

2. dic 정렬 

3. 찾고자 하는 단어의 위치 + 1(index는 0부터 시작하기 때문에) 리턴

from itertools import product

def solution(word):
    answer = 0
    
    words= [ 'A', 'E', 'I', 'O', 'U' ]
    dic = [] 
    for i in range(1,6):
        pro = list(product(words,repeat=i))
        
        for j in pro:
            dic.append("".join(j))
    dic.sort()
    
    return dic.index(word) +1