문제 : 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))
재귀를 이용하는 방식으로 해결해줬다.