몸과 마음이 건전한 SW 개발자

프로그래머스 [Lv. 2] 모음 사전 {언어 : Python} 본문

알고리즘

프로그래머스 [Lv. 2] 모음 사전 {언어 : Python}

스위태니 2024. 2. 19. 18:17

문제 링크

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

 

프로그래머스

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

programmers.co.kr

정답 코드

cnt = 0
answer = 0
def solution(word):
    def dictSearch(length, string):
        global cnt, answer
        if length:
            if word == string:
                answer = cnt
        if length == 5:
            return
        for alpha in ["A", "E", "I", "O", "U"]:
            cnt += 1
            dictSearch(length+1, string+alpha)
    dictSearch(0, "")
    return answer

풀이 방법

  1. length가 존재하면 단어가 만들어진 것이므로 word와 비교한다.
  2. length가 5이하이므로 5에서 재귀를 종료한다.
  3. "A" 부터 문자를 만들어주는데
  4. "A" 다음은 "AA"가 만들어진다.
  5. 마지막으로 word와 일치하면 현재 cnt를 answer에 넣어주고 출력한다.

느낀점

  • 재귀이면서 조합이었던 문제가 아닐까 싶다.