CS/알고리즘 풀이
[알고리즘_dp] 1,2,3 더하기
Selina Park
2019. 8. 20. 13:48
생각해보기
d[1] = d[0]; //d[1] = 1
d[2] = d[2-1] + d[2-2]; //d[2] = 2
d[3] = d[3-1] + d[3-2] + d[3-3]; //4
d[4] = d[4-1] + d[4-2] + d[4-3]; //4+2+1
d[5] = d[5-1] + d[5-2] + d[5-3]; //7+4+2
전체 코드
package dp;
import java.util.Scanner;
public class backjoon_9095 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
int n = 0;
int[] d = new int[11]; //n은 양수이며 11보다 작다.
d[0] = 1;
d[1] = 1;
d[2] = 2;
d[3] = 4;
for(int i=0; i<T; i++){
n = sc.nextInt();
for(int j=4; j<=n; j++){
d[j] = d[j-1] + d[j-2] + d[j-3];
}
System.out.println(d[n]);
}
}
}
https://www.acmicpc.net/problem/9095
9095번: 1, 2, 3 더하기
문제 정수 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은 양수이며 11보다 작다. 출력 각
www.acmicpc.net