본문 바로가기

Algorithm/프로그래머스

[프로그래머스] Lv.2 모음사전

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

1. 해결방법

완전탐색 문제는 항상 dfs로 풀었다.

모음이 5개가 되면 return 해주는 방식으로 재귀를 돌렸다.
물론 aeiou를 순서대로 문자열에 더하면서 재귀를 돌리는 방식이라 리턴이 되더라도 마지막에 더해진 문자열은 영향을 받지 않는 다는 특성을 이용한 것이다.

경험이 너무 적다보니 이렇게 쉬운 문제도 많이 헤맸다. 아직 많이 부족하다...

 

 

2. 정답코드

def solution(word):
    answer = 0
    alpha = ['A', 'E', 'I', 'O', 'U']
    s = ''
    result = []
    
    def dfs(s, alpha):
        nonlocal answer
        
        if len(s) == 5:
            return
        
        for a in alpha:
            p = s + a
            answer += 1
            
            if p == word:
                result.append(answer)
                break
            dfs(p, alpha)
    
    dfs(s, alpha)
    return result[0]