[알고리즘]/백준

백준 15988 자바 - 1, 2, 3 더하기 3

broship 2021. 9. 5. 16:18

문제


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

 

15988번: 1, 2, 3 더하기 3

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

www.acmicpc.net

 

 

 

문제해결


https://broship.tistory.com/219

- 백준 9095 문제와 똑같은 문제다, 다만 n의 최대값이 1000000으로 바뀌었다

- 처음 dp 배열을 1000000 크기로 생성 후 오버플로우를 방지하기 위해 모든 덧셈을 한 후 1000000009을 나눠주면 된다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] dp = new int[1000001];
        dp[1] = 1;
        dp[2] = 2;
        dp[3] = 4;
        for (int i = 4; i < 1000001; i++) {
            dp[i] = ((dp[i-3] + dp[i-2]) % 1000000009 + dp[i-1]) % 1000000009;
        }

        int t = sc.nextInt();
        for (int i = 0; i < t; i++) {
            int n = sc.nextInt();
            System.out.println(dp[n]);
        }
    }
}

'[알고리즘] > 백준' 카테고리의 다른 글

백준 1309 자바 - 동물원  (0) 2021.09.10
백준 1149 자바 - RGB거리  (0) 2021.09.06
백준 2225 자바 - 합분해  (0) 2021.08.08
백준 1699 자바 - 제곱수의 합  (0) 2021.08.06
백준 1912 자바 - 연속합  (0) 2021.08.04