코딩고치

[백준][DP] 동물원 본문

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

[백준][DP] 동물원

코딩고치 2020. 3. 22. 21:54

1. 문제 주소

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

 

1309번: 동물원

첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다.

www.acmicpc.net

2. 문제

N번째 행에서 사자가 아무 데도 없는 경우, 첫 번째 열에 있는 경우, 두 번째 열에 있는 경우의 수를 2차원 배열로 나타내면 쉽게 풀 수 있다.

3. 소스코드

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

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

[백준][DP] 스티커  (0) 2020.03.24
[백준][DP] 오르막 수  (0) 2020.03.22
[백준][DP] RGB거리  (0) 2020.03.12
[백준][DP] 1, 2, 3 더하기 3  (0) 2019.11.26
[백준][DP] 합분해  (0) 2019.11.20
Comments