[백준/python/9095]1,2,3 더하기

문제 : 1,2,3더하기

이 문제는 흔하게 볼 수 있는 dp문제이다.

t=int(input())
for _ in range(t):
    n=int(input())
    dp=[0]*(n+1)
    dp[1]=1
    dp[2]=2
    dp[3]=4
    for i in range(4,n+1):
        dp[i]=dp[i-1]+dp[i-2]+dp[i-3]
    print(dp[n])

처음에 이렇게 풀었더니 런타임 에러가 떴다. 1부터 n까지 모두 구하는 것이 에러의 원인이였다.

t=int(input())
def plus(n):
    if n==1:
        return 1
    elif n==2:
        return 2
    elif n==3:
        return 4
    else:
        return plus(n-1)+plus(n-2)+plus(n-3)
for _ in range(t):
    n=int(input())
    print(plus(n))

재귀를 이용하는 방식으로 해결해줬다.

좋은 웹페이지 즐겨찾기