PS 부수기
Project Euler #18 : 삼각형을 따라 내려가면서 합이 최대가 되는 경로 찾기 본문
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 |
'Project Euler' 카테고리의 다른 글
Project Euler #20 : 100! 의 자릿수를 모두 더하면? (0) | 2020.08.07 |
---|---|
Project Euler #19 : 20세기에서, 매월 1일이 일요일인 경우는 몇 번? (0) | 2020.08.07 |
Project Euler #17 : 1부터 1000까지 영어로 썼을 때 사용된 글자의 개수는? (0) | 2020.08.07 |
Project Euler #16 : 2^1000의 각 자릿수를 모두 더하면? (0) | 2020.08.07 |
Project Euler #15 : 20×20 격자의 좌상단에서 우하단으로 가는 경로의 수 (0) | 2020.08.07 |
Comments