9095:1,2,3 더하기

문제

코드

case=[1,2,4]
t = int(input())

for i in range(3,10):
    case.append(case[i-3]+case[i-2]+case[i-1])

for _ in range(t):
    n = int(input())
    print(case[n-1])

해설

전형적인 DP문제이다.
이 문제와 비슷한 유형을 피보나치수열을 구할때와 유사하다
우선, 문제의 케이스별 규칙을 구하면
f(n)=f(n-1)+f(n-2)+f(n-3)을 가지고 n이 1,2,3 일때는 고정된 수 이므로 case라는 리스트에 미리 넣어두고 case리스트에 값들을 추가해나가는 방식으로 진행한다.

좋은 웹페이지 즐겨찾기