[[TableOfContents]] = ì˜¤ëŠ˜ì˜ ë¬¸ì œ = * [http://www.acmicpc.net/problem/1932|ìˆ«ìž ì‚¼ê°í˜•] = ì°¸ê°€ìž = * ë°•ì¸ì„œ * 15ì´ì›ì¤€ = 코드 = == 15ì´ì›ì¤€ == {{{ #include<iostream> #include<stdio.h> #include<vector> using namespace std; int main(){ vector<int> in; vector<int> vec; int N; scanf("%d", &N); int size; size = N * (N + 1) / 2; for(int i = 0; i<size; i++){ int temp; scanf("%d", &temp); in.push_back(temp); } vec.resize(size, 0); int i = 0; vec[0] = in[0]; for(int j = 1; j<N; j++){ //줄 변경 for(int m = 0; m<j; m++){ //m번째 줄 ì „ë¶€ íƒìƒ‰ for(int k = 0; k < 2; k++){ //아왼, 아오 if(vec[i + k + j] < vec[i] + in[i + k + j]) vec[i + k + j] = vec[i] + in[i + k + j]; } i++; } } int max = 0; for(int j = size-N; j <size; j++){ if(max < vec[j]){ max = vec[j]; } } printf("%d\n", max); } }}} == ë°•ì¸ì„œ == {{{ #include <iostream> #include <algorithm> int a[501][501], dp[501][501]; int main() { int n; std::cin >> n; for (int i = 0; i<n; i++) { for (int j = 0; j <= i; j++) { std::cin >> a[i][j]; } } dp[0][0] = a[0][0]; for (int i = 1; i<n; i++) { dp[i][0] = dp[i - 1][0] + a[i][0]; for (int j = 1; j<i; j++) { dp[i][j] = std::max(dp[i - 1][j - 1], dp[i - 1][j]) + a[i][j]; } dp[i][i] = dp[i - 1][i - 1] + a[i][i]; } int max = 0; for (int i = 0; i<n; i++) { if (max<dp[n - 1][i]) max = dp[n - 1][i]; } std::cout << max; return 0; } }}} == ê³½ì •í == = ì•„ì´ë””ì–´ = == 15ì´ì›ì¤€ == == ë°•ì¸ì„œ == == ê³½ì •í ==