최대 1 분 소요

사용 언어: Python3

문제

피보나치 수 5

풀이

나의 풀이

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))
  • 테스트 케이스: 통과
  • 제출 결과: 통과
    스크린샷 2023-07-03 오전 11 22 02

나의 풀이 (개선된 풀이)

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))
  • 테스트 케이스: 통과
  • 제출 결과: 통과
    스크린샷 2023-07-03 오전 11 43 17

다른 풀이

N = int(input())
dp = [0, 1]

for i in range(2, N + 1):
    dp.append(dp[i - 1] + dp[i - 2])

print(dp[N])
  • 테스트 케이스: 통과
  • 제출 결과: 통과
    스크린샷 2023-07-03 오전 11 44 09


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기