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

kimgaeul02·2023년 2월 2일

프로그래머스

목록 보기
9/11

📄 모음사전

🔗 완전탐색 : 모음사전


📌 해석

영어 사전의 단어 순서는 다음과 같다.

예를 들어 A, B, C, D의 사전식 배열은 배열의 첫 번째가 처음 알파벳 A가 오고 그다음 BCD 순이 된다. 처음 알파벳 A가 나오고 BCD를 배열하고 끝나면 다음 B가 첫번째로 놓이고 ACD가 배열된다. 이런 식으로 배열되면 CDAB는 17번째 배열이라는 것을 쉽게 알 수 있는데 첫 문자에 A가 오는 게 6가지, B가 오는 게 6가지, C가 첫 번째 오고 다음 A가 오면 남은 BD 배열하는 방법 2가지, CB 오고 남은 AD 배열하는 방법 2가지, 그 다음이 CDAB 문자열이 나온다.

이를 이용하여 사전 순으로 단어를 정렬하는 코드를 구현하였다.

📌 풀이

단어를 담는 사전 배열 dic을 생성한다. 이후 모음 순서 word = 'A','E','I','O','U'에 따라 단어 생성 함수 dictionary()를 수행한다. dictionary()는 입력받은 word로 시작하는 단어들을 생성하는 함수로, 생성 가능한 모든 단어를 dic에 추가하였을 경우 다음 알파벳으로 넘어가 새로운 word로 단어 생성을 시작하는 재귀 함수이다.


💻 코드

def solution(word):
    dic = []
    
    #1  (s)로 들어오는 문자에 대한 사전
    def dictionary(word):
        if len(word) == 6:          # 최대 길이
            return
        dic.append(word)            # 사전에 추가
        
    #2  (s+i)로 넘김
        for i in ('A','E','I','O','U'):
            dictionary(word+i)      # 문자 붙이기
        
    for i in ('A','E','I','O','U'):
        dictionary(i)
    
    return dic.index(word)+1

0개의 댓글