백트래킹을 이용해서 풀자.
def solution(word):
vowels = ['A', 'E', 'I', 'O', 'U']
cnt = 0
result = 0
# 백트래킹으로 풀기
def bt(now):
nonlocal cnt, result
if len(now) > 5:
return
if now: # 새로운 단어 생성 시 카운트 증가
cnt += 1
if now == word: # 목표 단어와 일치하면 카운트 저장 후 탐색 중단
result = cnt
return
for vowel in vowels:
if result: # 목표 단어를 찾았다면 추가 탐색 중단
return
bt(now+vowel)
bt('')
return result
nonlocal은 중첩 함수(내부 함수)에서 외부 함수의 변수를 수정할 수 있도록 해줍니다.
변수를 전역 변수로 만들어서, 프로그램 어디에서나 접근 가능하게 합니다.