Guidelines

μž¬κ·€ 호좜(recursive-call)μ΄λž€?

μž¬κ·€λŠ” ν•¨μˆ˜κ°€ 슀슀둜λ₯Ό ν˜ΈμΆœν•˜λŠ” 것을 λœ»ν•©λ‹ˆλ‹€. 주둜 νŒ©ν† λ¦¬μ–Ό, ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄ λ“± μˆ˜ν•™μ  ν•¨μˆ˜λ₯Ό ν‘œν˜„ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

νŒ©ν† λ¦¬μ–Ό μž¬κ·€ ν•¨μˆ˜ μ˜ˆμ‹œ
def factorial(n): if n == 0: # κΈ°μ € 쑰건 return 1 # μž¬κ·€ μ’…λ£Œ else: # μž¬κ·€ 호좜 return n * factorial(n-1) # 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜λ©΄μ„œ n-1을 인자둜 전달 # μ˜ˆμ‹œ: 5의 νŒ©ν† λ¦¬μ–Ό 계산 factorial_result = factorial(5) print("factorial_result:", factorial_result) # factorial_result: 120

μž¬κ·€ν•¨μˆ˜λŠ” λ³΅μž‘ν•œ 문제λ₯Ό κ°„λ‹¨ν•˜κ³  반볡적인 문제둜 λ‚˜λˆ„μ–΄ ν•΄κ²°ν•˜λŠ” 데 μœ μš©ν•©λ‹ˆλ‹€.


κΈ°μ € 쑰건(Base Case)

λͺ¨λ“  μž¬κ·€ ν•¨μˆ˜λŠ” μ’…λ£Œ 쑰건, 즉 κΈ°μ € 쑰건이 ν•„μš”ν•©λ‹ˆλ‹€. κΈ°μ € 쑰건은 μž¬κ·€ 호좜이 λλ‚˜λŠ” 지점을 μ •μ˜ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ μœ„ factorial ν•¨μˆ˜μ—μ„œ if n == 0은 μž¬κ·€ ν•¨μˆ˜λ₯Ό μ’…λ£Œν•˜λŠ” κΈ°μ € μ‘°κ±΄μž…λ‹ˆλ‹€.

이 쑰건으둜 인해 n이 0 μ΄ν•˜κ°€ 되면 ν•¨μˆ˜λŠ” 더 이상 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜μ§€ μ•Šκ³  μ’…λ£Œλ©λ‹ˆλ‹€.


μž¬κ·€ μ‚¬μš©μ˜ μž₯단점

μž₯점:

  1. μ½”λ“œκ°€ 더 κΉ”λ”ν•˜κ³  μ΄ν•΄ν•˜κΈ° μ‰½μŠ΅λ‹ˆλ‹€.

  2. λ³΅μž‘ν•œ 문제λ₯Ό κ°„κ²°ν•˜κ²Œ ν‘œν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  3. 특히 μžλ£Œκ΅¬μ‘°μ™€ μ•Œκ³ λ¦¬μ¦˜μ„ μžμ—°μŠ€λŸ½κ²Œ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


단점:

  • 각 ν•¨μˆ˜ ν˜ΈμΆœλ§ˆλ‹€ λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜μ—¬, λ©”λͺ¨λ¦¬ μ‚¬μš©μ΄ 더 λ§Žμ•„μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 잘λͺ» κ΅¬ν˜„ν•˜λ©΄ λ¬΄ν•œ 루프에 빠질 수 μžˆμŠ΅λ‹ˆλ‹€.

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help