https://www.acmicpc.net/problem/4150
4150번: 피보나치 수
피보나치 수열은 다음과 같이 그 전 두 항의 합으로 계산되는 수열이다. 첫 두 항은 1로 정의된다. f(1) = 1, f(2) = 1, f(n > 2) = f(n − 1) + f(n − 2) 정수를 입력받아, 그에 해당하는 피보나치 수를 출력
www.acmicpc.net
풀이 1
피보나치 수를 점화식을 사용해서 문제를 풀어준다.
# 4150번 피보나치 수
n = int(input())
# dp 생성
fibo = [0, 1]
for i in range(2, n+1):
fibo.append(fibo[i-1] + fibo[i-2])
print(fibo[n])
출력결과
풀이 2(시간초과)
재귀함수 사용하게되며 시간초과 일어난다.
# 4150번 재귀함수 사용
import sys
sys.setrecursionlimit(10 ** 6)
def fibo(n):
if n == 0: return 0
elif n == 1: return 1
else: return fibo(n-1) + fibo(n-2)
n = int(input())
print(fibo(n))
'백준 > 구현' 카테고리의 다른 글
[백준] 2475번 검증수 - 파이썬 (0) | 2022.02.20 |
---|---|
[백준] 2920번 음계 - 파이썬 (0) | 2022.02.20 |
[백준] 2563번 색종이 - 파이썬 (0) | 2022.02.16 |
[백준][Python] 1037번 약수 - 코팩 (0) | 2022.02.14 |
[백준] 2980번 도로와 신호등 - 파이썬 (1) | 2022.02.14 |