본문 바로가기
Algorithm/프로그래머스

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

by _temp 2022. 5. 3.

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

 

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

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

programmers.co.kr

 

from itertools import product as pro

def solution(word):
    result = []
    for i in range(1,6):
        for x in pro(['A','E','I','O','U'], repeat=i):
            result.append(''.join(list(x)))
    result.sort()
    return result.index(word)+1

 

풀이
1. product를 이용해서 중복을 이용해서 모든 경우의 수를 구해준다.
2. 정렬을 한다.
3. word의 인덱스를 찾고 +1을 하여 반환

 

5개의 단어라고 정해져 있어서 모두 생성하고 인덱스를 찾는 것만으로 간단하게 구할 수 있었다.

다만 단어의 길이가 늘어난다면 시간 초과가 일어날 가능성이 크다.

이러할 경우에는 각 알파벳마다의 단어 개수는 일정하므로 수학식을 이용해서 풀면 된다.