N개의 정수를 담고 있는 배열에서, 가능한 연속 부분합을 구하는 프로그램을 작성하라
입력에 대한 가장 큰 연속 부분합을 출력한다
#include <stdio.h>
int N, arr[100005], ans;
int Max(int x, int y) { return x > y ? x : y; } // MAX 함수
int main()
{
scanf("%d", &N); // 숫자를 입력 받고
for (int i = 1; i <= N; i++) {
scanf("%d", &arr[i]); // 하나씩 넣는데,
if (arr[i - 1] > 0) arr[i] += arr[i - 1]; // 양수이면 누적값을 저장함
ans = Max(ans, arr[i]); // 가장 큰 수를 저장함
}
printf("%d\n", ans);
return 0;
}
4 10
|
5 17 |
'Algorithms > simulation' 카테고리의 다른 글
2 Problem C : 용액 (0) | 2019.11.07 |
---|---|
2 Problem A : 수열 (0) | 2019.11.07 |
1 Problem B : 못생긴 수 (0) | 2019.11.07 |
4 Problem C : 숫자 야구2 (0) | 2019.11.07 |
4 Problem B : 타일 채우기 (0) | 2019.11.07 |
댓글