[백준/DP] 9095번 1, 2, 3 더하기 (JAVA)

Jiwoo Kim·2021년 4월 13일
0

알고리즘 정복하기

목록 보기
49/85
post-thumbnail

문제


풀이

1, 2, 3만을 활용해야 하므로, 이미 구해진 수의 조합에다가 1, 2, 3을 더하기만 하면 된다.
그래서 점화식은 dp[i] = dp[i-1] + dp[i-2] + dp[i-3]이 된다.

코드

import java.io.*;

public class Main {

    private static final int MAXIMUM = 10;

    private static int n;
    private static int[] dp = new int[MAXIMUM + 1];

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int T = Integer.parseInt(br.readLine());
        dp();
        for (int i = 0; i < T; i++) {
            n = Integer.parseInt(br.readLine());
            bw.append(String.valueOf(dp[n])).append("\n");
        }

        br.close();
        bw.close();
    }

    private static void dp() {
        dp[1] = 1;
        dp[2] = 2;
        dp[3] = 4;
        for (int i = 4; i <= MAXIMUM; i++)
            dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
    }
}

0개의 댓글