문제 : 수열을 입력받아서 그 수열의 연속되는 숫자들의 합 중 최대 값을 찾는 문제
#include<iostream> #include<algorithm> using namespace std; int main() { int input; cin >> input;//몇개 입력할래? int *dp = new int[input]; int *res = new int[input];//값이 저장되는 배열 for (int a = 0; a < input; a++) { cin >> res[a]; }//값을 배열에 저장 dp[0] = res[0]; for (int i = 1; i < input; i++) { dp[i] = max(dp[i - 1] + res[i], res[i]); } int dab; for (int j = 0; j < input; j++) { if (j == 0) { dab = dp[j]; } else if (dp[j] > dab) dab = dp[j]; } cout << dab; }
'ALGORITHM' 카테고리의 다른 글
문제접근방법1_과정 수식화 하기 (0) | 2017.10.17 |
---|---|
10844_쉬운계단 수 (0) | 2017.10.12 |
1316_그룹단어체커 (0) | 2017.10.03 |
1076_저항 (0) | 2017.09.29 |
집합_11723 (0) | 2017.09.28 |