Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

PS 부수기

Project Euler #18 : 삼각형을 따라 내려가면서 합이 최대가 되는 경로 찾기 본문

Project Euler

Project Euler #18 : 삼각형을 따라 내려가면서 합이 최대가 되는 경로 찾기

jyheo98 2020. 8. 7. 12:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
int main() {
    int n = 15;
    vector<vector<int>> a(n, vector<int>(n));
    rep(i, 0, n) {
        rep(j, 0, i+1) {
            cin >> a[i][j];
        }
    }
    vector<vector<int>> dp(n, vector<int>(n));
    dp[0][0= a[0][0];
    rep(i, 1, n) {
        rep(j, 0, i + 1) {
            if (j == 0) {
                dp[i][j] = dp[i - 1][j] + a[i][j];
            }
            else if (j == i) {
                dp[i][j] = dp[i - 1][j - 1+ a[i][j];
            }
            else {
                dp[i][j] = max(dp[i - 1][j - 1], dp[i - 1][j]) + a[i][j];
            }
        }
    }
    int mmax = -1;
    rep(i, 0, n) {
        mmax = max(mmax, dp[n - 1][i]);
    }
    cout << mmax;
}
cs
Comments