1. 피보나치 수
첫 번째 항을 0, 두 번째 항을 1로 한 후, 이후의 항들은 이전의 두 항을 더한 값으로 이루어진 수열
2. 재귀함수 이용하기 => 비효율
n = int(input())
def fibo(n):
if n == 0 or n == 1:
return n
else:
return fibo(n-1) + fibo(n-2)
print(fibo(n))
3. 행렬 이용하기
n = int(input())
def fibo(n):
f1 = 0
f2 = 1
for i in range(2, n+1):
f3 = f1 + f2
f1 = f2
f2 = f3
return f2
print(fibo(n))
4. list 이용하기
n = int(input())
def fibo(n):
arr = [0,1]
for i in range(2,n+1):
arr.append(arr[i-1] + arr[i-2])
return arr[n]
print(fibo(n))
5. 두 개의 변수 이용하기
n = int(input())
def fibo(n):
a,b = 0,1
for i in range(2,n+1):
a,b = b, a+b
return b
print(fibo(n))
아으 DP의 기초 중 기초인 파보나치 수,, DP 넘나리 어려워~
'🔅코딩테스트 공부🔅 > ❗그 외 추가 공부' 카테고리의 다른 글
[구간 합] 접두사 합 (0) | 2023.02.26 |
---|---|
❗문제 메모 - 그래프❗ (0) | 2023.02.23 |
[수학] 에라토스테네스의 체(with python) (0) | 2023.01.21 |
댓글