[프로그래머스(파이썬/Python)] 모음사전

kindof

·

2021. 9. 6. 21:11

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

 

코딩테스트 연습 - 5주차_모음사전

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

programmers.co.kr

 

애초에 문제에서 만들 수 있는 단어의 모든 가지 수가 크지 않았기 때문에 중복 순열을 이용해서 풀 수 있었습니다.

 

단어의 길이가 1부터 5까지인 모든 단어를 리스트에 입력한 뒤 정렬을 하고, 해당 단어가 몇 번째에 있는지 index 내장 함수로 찾아주기만 하면 되겠죠!

 

풀이는 아래와 같습니다.

[풀이]

from itertools import product

def solution(word):
    alphabets = ["A","E","I","O","U"]
    dictionary = []

    # 중복 순열로 길이 = 1~5인 단어를 모두 구한다
    for i in range(1, 6):
        for w in list(product(alphabets,repeat=i)):
            dictionary.append(''.join(w))
    dictionary.sort()
    return dictionary.index(word)+1