[νλ‘κ·Έλλ¨Έμ€] λͺ¨μμ¬μ (level2, python)
λ¬Έμ μ€λͺ
μ¬μ μ μνλ²³ λͺ¨μ 'A', 'E', 'I', 'O', 'U'λ§μ μ¬μ©νμ¬ λ§λ€ μ μλ, κΈΈμ΄ 5 μ΄νμ λͺ¨λ λ¨μ΄κ° μλ‘λμ΄ μμ΅λλ€. μ¬μ μμ 첫 λ²μ§Έ λ¨μ΄λ "A"μ΄κ³ , κ·Έλ€μμ "AA"μ΄λ©°, λ§μ§λ§ λ¨μ΄λ "UUUUU"μ λλ€.
λ¨μ΄ νλ wordκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ΄ λ¨μ΄κ° μ¬μ μμ λͺ λ²μ§Έ λ¨μ΄μΈμ§ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- wordμ κΈΈμ΄λ 1 μ΄μ 5 μ΄νμ λλ€.
- wordλ μνλ²³ λλ¬Έμ 'A', 'E', 'I', 'O', 'U'λ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
μ μΆλ ₯ μ
μ μΆλ ₯ μ #1
μ¬μ μμ 첫 λ²μ§Έ λ¨μ΄λ "A"μ΄κ³ , κ·Έλ€μμ "AA", "AAA", "AAAA", "AAAAA", "AAAAE", ... μ κ°μ΅λλ€. "AAAAE"λ μ¬μ μμ 6λ²μ§Έ λ¨μ΄μ λλ€.
μ μΆλ ₯ μ #2
"AAAE"λ "A", "AA", "AAA", "AAAA", "AAAAA", "AAAAE", "AAAAI", "AAAAO", "AAAAU"μ λ€μμΈ 10λ²μ§Έ λ¨μ΄μ λλ€.
μ μΆλ ₯ μ #3
"I"λ 1563λ²μ§Έ λ¨μ΄μ λλ€.
μ μΆλ ₯ μ #4
"EIO"λ 1189λ²μ§Έ λ¨μ΄μ λλ€.
νμ΄ μ½λ
def solution(word):
letter = 'AEIOU'
answer = 0
count = 0
def dfs(now, target):
nonlocal count
nonlocal answer
if now == target:
answer = count
return
if len(now) > 5:
return
count += 1
for l in letter:
dfs(now+l, target)
dfs('', word)
return answer
DFSλ₯Ό ν΅ν΄ νμλ€.
μ΄ μ½λμ λ¨μ μ, now == targetμΈ κ²μ μ°Ύμμ 리ν΄μ νλλΌλ,
μ¬κ·μ ν¨μμ νΉμ±μ μ¬κ· μ€νμ μμΈ λͺ¨λ κ²λ€μ΄ 리ν΄λμ§ μλλ€.
λ°λΌμ μκ° λ³΅μ‘λ μΈ‘λ©΄μμ μν΄λ₯Ό 보λ λ©΄μ΄ μλ€.
itertools λͺ¨λμ μ¬μ©ν΄ λͺ¨λ μ‘°ν©μ λ§λ€μ΄μ νμ΄νκ±°λ,
μ¬μ§μ΄ 5μ€ forλ¬Έμ μ¬μ©ν΄ νμ΄ν΄λ νλ¦°λ€.