정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.
1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.
입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 1,000,000보다 작거나 같다.
출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다.
3 4 7 10
7 44 274
1을 나타내는 수: 1 2를 나타내는 수: 2 3을 나타내는 수: 4 4를 나타내는 수: 7 1 1 1 1 1 1 2 1 2 1 2 1 1 2 2 3 1 1 3
dp[i-3] => i를 만들기 위해 끝에 더하는게 3일때의 경우의 수 dp[i-2] => i를 만들기 위해 끝에 더하는게 2일때의 경우의 수 dp[i-1] => i를 만들기 위해 끝에 더하는게 1일때의 경우의 수
예를 들어 4의 경우 dp[i-3] => 1+3이니까 1만드는 경우의 수 dp[i-2] => 2+2 니까 2만드는 경우의 수 dp[i-1] => 3+1 니까 3만드는 경우의 수