완전탐색 - 모음사전 (Level 2)

jisu_log·2025년 3월 20일

알고리즘 문제풀이

목록 보기
4/105

풀이: 알파벳 모음만을 조합해서 단어를 만들고, 최소 길이 1부터 5까지이므로 해당 알파벳들을 사용하여 중복순열(순서가 상관있으므로)을 1부터 5까지의 길이로 생성하여 dict 리스트에 가능한 단어를 모두 추가한 후, sort()하여 사전순으로 정렬한 후에 dict.index(words)로 찾고자 하는 단어의 인덱스를 얻어서 리턴한다.

from itertools import product

def solution(word):

    sets = ['A','E','I','O','U'] # 조합 가능한 알파벳 모음
    dict = [] # 존재할 수 있는 모든 조합의 단어를 저장할 리스트
    
    words = list(word) # 문자열을 리스트로 변환해서 타입 일치시키기

    for i in range(1, 6): # 중복조합의 가능한 길이는 1부터 5까지
        
        data = product(sets, repeat = i) # product() 사용하여 중복조합 생성
        
        for elem in data: 
            dict.append(list(elem)) # 각 elem은 list로 변환해서 dict에 저장해야 함
    
    dict.sort() # 모두 저장된 리스트를 사전순으로 sort하기
    
    answer = dict.index(words) + 1 # 찾고자 하는 단어의 index를 찾기 (0부터 시작함에 유의)
    
    
    return answer

0개의 댓글