[BOJ] 10870 - 피보나치 수 5 (🥉 브론즈 2티어)
사용 언어: Python3
문제
풀이
나의 풀이
N = int(input())
def fibo(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibo(n-1) + fibo(n-2)
print(fibo(N))
- 테스트 케이스: 통과
- 제출 결과: 통과
나의 풀이 (개선된 풀이)
N = int(input())
dp = [-1] * (N + 1)
def fibo(n):
if dp[n] != -1:
return dp[n] # ✅ 메모이제이션
if n == 0 or n == 1:
return n
else:
dp[n] = fibo(n-1) + fibo(n-2)
return dp[n]
print(fibo(N))
- 테스트 케이스: 통과
- 제출 결과: 통과
다른 풀이
N = int(input())
dp = [0, 1]
for i in range(2, N + 1):
dp.append(dp[i - 1] + dp[i - 2])
print(dp[N])
- 테스트 케이스: 통과
- 제출 결과: 통과
💛 개인 공부 기록용 블로그입니다. 👻