public class Solution {

	// 1, 2, 3 더하기 - DP 9095번
	// n을 1, 2, 3의 합으로 나타내는 방법의 수
	
	static int n = 4;
	static int[] dp = new int[101];
	
	// 1+1+1+1
	// 1+1+2
	// 1+2+1
	// 2+1+1
	// 2+2
	// 1+3
	// 3+1
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// n은 1일 때 1
		// 2일 때 1+1, 2
		// 3일 때 1+1+1, 1+2, 2+1, 3
		
		// 4는 1+3/2+2/3+1로 나타낼 수 있음
		// 1+(1+1+1)/2+(1+1)/3+(1)
		// 1+(1+2)/2+(2)
		// 1+(2+1)
		// 1+(3)
		// 따라서 f(3)+f(2)+f(1)로 나타낼 수 있는 것이다.
		
		dp[1] = 1;
		dp[2] = 2;
		dp[3] = 4;
		
		for (int i = 4; i <= 100; i++) {
			dp[i] = dp[i-1] + dp[i-2] + dp[i-3];
		}
		
		System.out.println(dp[n]);
	}
}

백준 DP 9095번 1, 2, 3 더하기

'Java > 백준' 카테고리의 다른 글

[Java] 백준 [7570] 줄 세우기  (0) 2022.12.17
[Java] 백준 [2631] 줄 세우기  (0) 2022.12.17
[Java] 백준 [1697] 숨바꼭질  (0) 2022.12.12
[Java] 백준 [1303] 전쟁 - 전투  (0) 2022.12.10
[Java] 백준 [11048] 이동하기  (0) 2022.12.10

+ Recent posts