문제 : https://www.acmicpc.net/problem/9095
초기 구상과정
초기 코드
import sys
input = sys.stdin.readline
for tc in range(int(input())):
num = int(input())
dp = [0, 1, 2, 4] + [0] * (num - 3)
for i in range(4, num + 1):
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]
print(dp[num])
1을 만드는 방법
2를 만드는 방법
3을 만드는 방법
4를 만드는 방법은
이런 식으로 dp를 전개해나가면
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]
이렇게 문제에 적용해서 전개해서 원하는 곳까지 나가면 답을 찾을 수 있다.
느낀점
처음으로 한방에 문제를 해결해서 너무 기분이 좋다!
DP 어려운데 잘 찾아보면 규칙을 찾을 수 있을 때 기분이 가장 좋다.