반응형
D[i][j] = i번째 행에서 j를 선택할 때 최대값 (1<=j< i)
그 전 행에서 왼쪽 수를 선택할 때를 j,오른쪽 수를 선택할 때를 j+1이므로
D[i][j] = max(D[i-1][j-1] +a[i][j],D[i-1][j] +a[i][j])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> #include <algorithm> using namespace std; int a[501][501],D[501][501],n, ans; int main() { cin >> n; for (int i = 1; i <= n; i++) for (int j = 1; j <= i; j++) cin >> a[i][j]; D[1][1] = a[1][1]; for (int i = 2; i <= n; i++) for (int j = 1; j <= i; j++) { D[i][j] = max(D[i - 1][j - 1] + a[i][j], D[i - 1][j] + a[i][j]); } for (int i = 2; i <= n; i++) for (int j = 1; j <= i; j++) if (D[i][j] > ans) ans = D[i][j]; cout << ans << '\n'; } | cs |
'Algorithm' 카테고리의 다른 글
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 4963번:섬의 개수(BFS) 답 (0) | 2017.02.08 |
---|---|
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2693번:N번째 큰 수 답 (0) | 2017.02.08 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2667번:단지번호붙이기(DFS) 답 (0) | 2017.02.08 |
C++(씨쁠쁠)(cplusplus)-백준(baekjoon)(BaekJoon)코딩 2667번:단지번호붙이기(BFS) 답 (0) | 2017.02.08 |
(C++) - 백준(BOJ) 10179번 : 쿠폰 (0) | 2017.02.07 |