알고리즘/문제풀이

[Python] Programmers 위클리 챌린지 5 모음 사전

정찡이 2021. 9. 11. 21:16
728x90

[Python] Programmers 위클리 챌린지 5 모음 사전

1. 문제 링크

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

 

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

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

programmers.co.kr


2. 문제 요약


3. 아이디어 정리

백트래킹을 이용하여 원하는 단어가 나올 때까지 알파벳을 순서대로 진행한다.


4. 문제 풀이

4-1. 내 풀이

global count
global result
count = 0
result = 0
def dfs(arr, word):
    global count
    global result
    list_ = ['A', 'E', 'I', 'O', 'U']
    if arr:
        count += 1
        if word == "".join(map(str, arr)):  # 원하는 단어인 경우, 몇 번째 단어인지 저장 
            result = count
            return
    if len(arr) == 5:
        return
    # 백트래킹을 이용하여 단어를 하나씩 넣어본다. 
    for a in list_:
        arr.append(a)
        dfs(arr, word)
        arr.pop()

def solution(word):
    dfs([], word)
    return result

 


5. 결론

  • 백트래킹을 이용하면 되는 문제
반응형