코딩고치

[백준][DP] 1, 2, 3 더하기 3 본문

백준 알고리즘 기초/다이내믹 프로그래밍

[백준][DP] 1, 2, 3 더하기 3

코딩고치 2019. 11. 26. 03:44

1. 문제 주소

 

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

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

www.acmicpc.net

2. 문제

정수 n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력하는 문제이다. n을 나타내는 방법은 n-1을 나타내는 방법에서 1을 더하고 n-2를 나타내는 방법에서 2를 더하고 n-3을 나타내는 방법에서 3을 더하면 된다. 따라서 n을 나타내는 방법의 수는 n-1, n-2, n-3을 나타내는 방법을 모두 더해주면 된다.

3. 소스 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
long long divide = 1000000009LL;
long long result[1000001];
int main() {
    int t;
    cin >> t;
    result[0= 1; result[1= 1; result[2= 2;
    for (int i = 3; i <= 1000000; i++) {
        result[i] = (result[i - 1+ result[i - 2+ result[i - 3]) % divide;
    }
    while (t--) {
        int n;
        cin >> n;
        cout << result[n] << '\n';
    }
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

'백준 알고리즘 기초 > 다이내믹 프로그래밍' 카테고리의 다른 글

[백준][DP] 동물원  (0) 2020.03.22
[백준][DP] RGB거리  (0) 2020.03.12
[백준][DP] 합분해  (0) 2019.11.20
[백준][DP] 제곱수의 합  (0) 2019.11.08
[백준][DP] 연속합  (0) 2019.11.06
Comments