๐ก ์ฌ๊ทํจ์๋?
์ฌ๊ท ํจ์๋ ์์ ์ ํธ์ถํ๋ ํจ์์ด๋ฉฐ ํด๋น ํ๋ก์ธ์ค๋ฅผ ํจ์ ์ฌ๊ท๋ผ๊ณ ํ๋ค.
์ด๋ฌํ ์ฌ๊ท ํจ์๋ ์์ ์ ๋ก์ง์ ๋ด๋ถ์ ์ผ๋ก ๋ฐ๋ณตํ๋ค ์ผ์ ์กฐ๊ฑด์ด ๋ง์กฑ๋๋ฉด ํจ์๋ฅผ ์ดํํด ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ค.
# ์ฌ๊ท ํจ์ ์์ ์ฝ๋ (ex. ํฉํ ๋ฆฌ์ผ)
def fact(n):
"""Recursive function to find factorial"""
if n == 1:
return 1
else:
return (n * fact(n - 1))
a = 6
print("Factorial of", a, "=", fact(a))
โช๏ธ ์ฌ๊ท ํธ์ถ์ ์ ํ
์ฌ๊ท ํจ์์ ๊ฒฝ์ฐ ํจ์๊ฐ ์์ ์ ํธ์ถ ํ ๋๋ง๋ค ์ค๊ฐ ๊ฐ์ ์ ์ฅํ๊ธฐ์ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๋ค.
๋ฐ๋ผ์ ์ผ๋ฐ์ ์ธ ๋น ์ฌ๊ท ํจ์๋ณด๋ค ํจ์ฌ ๋ง์ ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ์ ์๋นํ๋ค.
์ด ๋๋ฌธ์ ํ์ด์ฌ์ ์ฌ๊ท ํธ์ถ์ ์ ํ์ด ์๋๋ฐ ์ด๋ python3์ ๊ธฐ์ค์ผ๋ก 1000ํ๋ก ์ค์ ๋์ด ์์ผ๋ฉฐ, ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ์ ํํ ์ฌ๊ท ํธ์ถ์ ์ ํ์ ์๋์ ์ฝ๋๋ฅผ ํตํด ํ์ธ ๊ฐ๋ฅํ๋ค.
import sys
print(sys.getrecursionlimit())
์ด๋ ์ฌ๊ท ํธ์ถ ์ ํ์ ์ด๊ณผํ ๊ฒฝ์ฐ RecursionError๊ฐ ๋ฐ์ํ๋ค.
โช๏ธ ์ฌ๊ท ํธ์ถ ์ ํ์ ์ ๊ฑฐ
ํ์ด์ฌ์ ์ฌ๊ท ํธ์ถ์ ์ ํ ์ค์ ์ ๊ฒฝ์ฐ, ์๋์ ์ฝ๋๋ฅผ ํตํด ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
import sys
sys.setrecursionlimit(5000)
โช๏ธ ์ฌ๊ท์ ์ฅ์ vs ๋จ์
| ์ฅ์ | ๋จ์ |
| - ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๊ฒ ํ์ ๋ฌธ์ ๋ก ๋๋ ์ ์๋ค. - ์ฝ๋๊ฐ ๊น๋ํด์ ธ ๊ฐ๋ ์ฑ์ด ์ข์์ง๋ค. |
- ๋๋ก๋ ์ฌ๊ท์ ๋
ผ๋ฆฌ๊ฐ ๋ ๋ณต์กํ ์ ์๋ค. - ํ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ ์ฌ๊ท๊ฐ ์คํ๋ ค ๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก ๋ค์ ๋นํจ์จ์ ์ผ ์ ์๋ค. |
๐ TIP : ๋ณดํต ์ฝ๋ฉํ ์คํธ์ ๊ฒฝ์ฐ, ์ฌ๊ท๋ฅผ ์ฌ์ฉํ๋ฉด ์๊ฐ/๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฐ์ํ๊ธฐ์ ๊ถ์ฅ X.
'Language > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๋ฌธ๋ฒ] ๋ฆฌ์คํธ ๊ฐ์ 0์ผ๋ก ์ด๊ธฐํํ๊ธฐ (0) | 2022.03.02 |
|---|---|
| [๋ฌธ๋ฒ] ๋ฆฌ์คํธ ์์ ๋ฐ๋๋ก ๋์ดํ๊ธฐ (0) | 2022.03.01 |
| [๋ฌธ๋ฒ] Set, List, Dictionary (์์ฑ ไธญ) (0) | 2022.02.21 |
| [๋ฌธ๋ฒ] List์ ์ต๋น๊ฐ ์ถ๋ ฅํ๊ธฐ (0) | 2022.02.21 |
| [๋ฌธ๋ฒ] ์ ๋๋ ์ดํฐ(Generator) (0) | 2022.02.10 |