๐ ํ๋ก๊ทธ๋๋จธ์ค Level.2
ํผ๋ณด๋์น ์ ํ๋ก๊ทธ๋๋จธ์ค ๋งํฌ
ํฑ, ํ๊ณ ํ์๋๋
ํ, ํ๊ณ ๋ฐํ์ ์๋ฌ๊ฐ
๐ฉ๐ป๐ป ๋ด๊ฐ ํผ ํ์ด
์ฌ๊ท ํจ์ ์ฌ์ฉ,
def solution(n):
if n== 0:
return 0
elif n == 1:
return 1
return (solution(n-1)+solution(n-2))%1234567
๐ ์ ๋ต ์ฝ๋
def solution(n):
fibo = [0, 1]
for i in range(2, n+1):
fibo.append(fibo[i-1] + fibo[i-2])
return fibo[-1]%1234567
๋ฐ๋ณต๋ฌธ์ ์ด์ฉํด์ ํผ๋ณด๋์น ์๋ฅผ append ํด์ค๋ค.
๋งจ ๋ง์ง๋ง์ ์ ์ฅํ ์๊ฐ n๋ฒ์งธ ํผ๋ณด๋์น ์์ด๊ธฐ ๋๋ฌธ์ ๊ทธ์ ๋ฐ๋ฅธ ๋๋จธ์ง๋ฅผ ๊ตฌํ๊ธฐ ์ํด `fibo[-1]%1234567` ์ ํด์ค ๋ค์ `return`
์์ง ๋ง์, ํ์ด์ฌ์ ์ฌ๊ท ๊น์ด๊ฐ ์์ด ์ต์ฌ 1000๋ฒ์ ์ฌ๊ท ํธ์ถ์ด ๊ฐ๋ฅํ๊ณ ๊ทธ ์ด์์ 'Recursion Error' ๊ฐ ๋ฐ์ํ๋ค.
๐ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋
def fibonacci(num):
a, b = 0, 1
for i in range(num):
a, b = b, a+b
return a
์ ๋ฐํด, ์ธ์๊น๋ค.
๋ค๋ฅธ ๋ฌธ์ ์์ ์ด ๊น์ด๋ฅผ ๋๋ ค์ผ ํ๋ ์ํฉ์ด ์จ๋ค๋ฉด?
import sys
sys.setrecursionlimit(2500)
์์ sys ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ์ฌ๊ท ๊น์ด๋ฅผ ๋๋ ค์ฃผ๋ ๊ฒ์ ๊ธฐ์ตํ์๐ฏ
'Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค lvl.2] ์ ํ์ ์๊ฐ์ด๋ - python (0) | 2023.10.20 |
---|