본문 바로가기
공부/알고리즘

[백준]9095_1,2,3 더하기_JAVA 풀이

by happyeuni 2022. 3. 4.

https://www.acmicpc.net/problem/9095

 

9095번: 1, 2, 3 더하기

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

www.acmicpc.net

 

 

<풀이>

 DP 문제 ( 상향식 기법 활용)

* 1 = 1
 * -------------------> 1
 * 
 * 2 = 2
 *   = 1 + 1
 * -------------------> 2
 * 
 * 3 = 3
 *   = 2 + 1
 *   = 1 + 2
 *   = 1 + 1 + 1
 * -------------------> 4
 *   
 * 4 = 3 + (1)->1
 *   = 2 + (2)->2
 *   = 1 + (3)->4
 * -------------------> 7
 * 
 * 5 = 3 + (2)->2
 *   = 2 + (3)->4
 *   = 1 + (4)->7
 * -------------------> 13
 * 
 * => a(n) = a(n-1) + a(n-2) + a(n-3)

package DP;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main_9095_DP {
	static int[] d = new int[12];
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int TC = Integer.parseInt(br.readLine());
		d[1]=1;
		d[2]=2;
		d[3]=4;
		for (int i = 4; i <= 11; i++) {
			if(d[i]==0) {
				d[i] = d[i-1] + d[i-2]+ d[i-3];
			}
		}
		for (int tc = 0; tc < TC; tc++) {
			int N = Integer.parseInt(br.readLine());

			System.out.println(d[N]);
		} // TC end
		
	}
}

https://github.com/LeeJieuni/Problem-solving/blob/main/LJE/22%EB%85%843%EC%9B%941%EC%A3%BC_DP/DP_BOJ_9095_LJE.java

 

GitHub - LeeJieuni/Problem-solving

Contribute to LeeJieuni/Problem-solving development by creating an account on GitHub.

github.com

 

댓글