BOJ 9095번 1,2,3 더하기

|
package BOJ;

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

/**
 * BOJ 9095
 * https://www.acmicpc.net/problem/9095
 */
public class OneTwoThree_9095 {

    private static int[] arr;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        // D(n) : n을 1,2,3의 합으로 나타낼 수 있는 경우의 수
        // 마지막 자리에 1,2,3이 오는 경우를 생각해보자.
        // 마지막 자리에 1이 온다면 D(n-1)
        // 마지막 자리에 2가 온다면 D(n-2)
        // 마지막 자리에 3이 온다면 D(n-3)
        // D(n) = D(n-1) + D(n-2) + D(n-3)
        arr = new int[10+1];

        solve();
        while(n-- >0){
            int number = Integer.parseInt(br.readLine());
            System.out.println(arr[number]);
        }
    }

    private static void solve() {
        arr[0] = 1;
        arr[1] = 1;
        arr[2] = 2;

        for(int i=3; i<11; i++){
            arr[i] = arr[i-1] + arr[i-2] + arr[i-3];
        }
    }


}