카테고리 없음

[백준] JAVA 자바 : 1, 2, 3 더하기 3 (15988번)

kim-dev 2024. 1. 23. 13:28
반응형


앞서 1, 2, 3 더하기 문제들과 큰 차이가 없는 문제다.
그런데 솔직히 이제와서 그 문제가 뭐였는지 기억도 안 나서 ㅋㅋ 그냥 다시 짰다.

 

N은 1~1000000 사이의 수이므로 1000001까지의 long 배열을 만든 후 1, 2, 3을 더해서 만들 수 있는 모든 경우의 수를 다 저장한다.

그리고 for문을 돌면서 n을 입력받을 때마다 dp[n]을 출력하면 된다.

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

public class Sum123_3 {

    static int MOD = 1000000009;

    public static int stoi(String str) {
        return Integer.parseInt(str);
    }

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

        long[] dp = new long[1000001];
        dp[1] = 1; // 1
        dp[2] = 2; // 1+1, 2
        dp[3] = 4; // 1+1+1, 2+1, 2+1, 3

        for (int i=4; i<=1000000; i++) {
            dp[i] = (dp[i-1] + dp[i-2] + dp[i-3]) % MOD;
        }

        int T = stoi(br.readLine());
        for (int i=0; i<T; i++) {
            int n = stoi(br.readLine());
            System.out.println(dp[n]);
        }

    }
}

 

 

로그인

 

www.acmicpc.net

 

 

작성일자: 2024-01-17