반응형
[문제 출처]
https://www.acmicpc.net/problem/17175
17175번: 피보나치는 지겨웡~
혁진이는 알고리즘 문제를 만들라는 독촉을 받아 스트레스다. 하지만 피보나치 문제는 너무 많이 봐서 지겹기 그지없다. 그러나 문제를 만들 시간이 없는 혁진이는 피보나치 문제를 응용해서
www.acmicpc.net
[문제 풀이]
dp[i] 는 dp[i-1] 와 dp[i-2]의 합보다 1 큰 수로 정해진다.
fibonacci(n)을 호출했을 때 1혹은 0이 나올 때까지 fibonacci(n-1)과 fibonacci(n-2)를 호출한다.
따라서 fibonacci(n)를 호출한 횟수 1과 fibonacci(n-1)을 호출했을 때 fibonacci 호출 횟수인 dp[n-1]과
fibonacci(n-2)을 호출했을 때 fibonacci 호출 횟수인 dp[n-2]을 더해줘야 한다.
import sys
input = sys.stdin.readline
n = int(input())
dp = [1 for _ in range(n+1)]
for i in range(2, n+1):
dp[i] = (dp[i-1] + dp[i-2] + 1)%1000000007
print(dp[n])
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 1660 캡틴 이다솜 (0) | 2022.07.15 |
---|---|
[python/파이썬] 백준 17212 달나라 토끼를 위한 구매대금 지불 도우미 (0) | 2022.07.15 |
[python/파이썬] 백준 9461 파도반 수열 (0) | 2022.07.14 |
[python/파이썬] 백준 1003 피보나치 함수 (0) | 2022.07.13 |
[python/파이썬] 백준 2193 이친수 (0) | 2022.07.13 |