Koala - 16기/코딩테스트 심화 스터디

[BOJ/Python3] 9095번: 1, 2, 3 더하기

kim2001sh 2024. 10. 7. 01:28

문제

 

풀이

1과 2와 3일 때의 합의 방법의 수를 정의한다.

(n을 만드는 가짓수) == (n-3을 만드는 가짓수) + (n-2를 만드는 가짓수) + (n-1을 가짓수)임을 이용하여 코드를 작성한다. (각 가짓수에 각각 3, 2, 1을 더하면 n이 만들어지기 때문)

코드

T = int(input())

dp = [0] * 10
dp[0] = 1
dp[1] = 2
dp[2] = 4

for i in range(3, 10):
    dp[i] = dp[i - 3] + dp[i - 2] + dp[i - 1]
    
for _ in range(T):
    print(dp[int(input()) - 1])