https://codeup.kr/problem.php?id=3704
계단오르기
계단은 1,2,3칸으로 움직일수 있으므로, 고유하다( 중복 x)
Stair (1) = 1 --> 1가지
S (2) = 2. 1+1 --> 2가지
S (3) = 3, 2+1, 1+2, 1+1+1 --> 3가지
근데 다시 생각해 보면 계단 3개로 구분되니, 계단 3개 기준으로 값을 계산하면....
그럼 S(4)는??
S(4-3) + S(4-2) + S(4-1) = 1+2+4 = 7가지임
그럼 다시 문제에서 나온 S(5)는?
S(4)+S(3)+S(2)=7+4+2=13
논리는 이해가 되었으나 재귀로 풀면 시간초과가 생긴다...
결국 for로 돌려서 답은 나옴...
n = int(input())
d = [0] * 100001
d[1] = 1
d[2] = 2
d[3] = 4
for i in range(4, n+1):
d[i] = (d[i-1] + d[i-2] + d[i-3]) % 1000
print(d[n])