N = int(input())
dp = [0] * (N+1) # index error 방지
dp[0]=1
dp[1]=2
# 메모리 초과 방지를 위해 미리 나머지 계산
for i in range(2, N):
dp[i] = (dp[i-2] + dp[i-1]) % 15746
print(dp[N-1])
풀이
계산은 맞았으나, index error와 메모리 초과로 틀림
N+1을 하여 index error 방지
계산 과정에도 15746의 나머지를 저장하여 int 최대 값을 초과하지 않도록
다른 풀이
index 0은 사용하지 않고 1부터 사용
N = int(input())
dp = [0] * 1000001
dp[1]=1
dp[2]=2
for i in range(3, N+1):
dp[i] = (dp[i-2] + dp[i-1])%15746
print(dp[N])
결과