나의 풀이
f = [0] + [1]*(n:=int(input()))
if n > 2:
for i in range(2,n+1):
f[i] = (f[i-1] + f[i-2])%1000000007
print(f[n])
고수의 풀이
a,b=0,1
for _ in range(int(input())):a,b=b,(a+b)%(10**9+7)
print(a)
CODE REVIEW
- 피보나치 수열 문제들과 해결 방법 동일.
- 마지막에만 1000000007로 나눗셈을 하면
메모리 초과
에러가 발생하기 때문에 매번 저장 할 때마다 나누어주어야 한다. (너무 큰 숫자가 저장되는걸 방지) - 고수의 풀이에서
a,b=b,a+b
처럼 작성하는 방법도 참고!