연속합 1912

PublicMinsu·2023년 9월 10일
0

문제

접근 방법

연속합이 양수라면 계속해서 확인해도 된다. 하지만 음수가 된다면 해당하는 값은 다른 값과 이으면 손해이므로 연속합을 초기화해 주고 이어준다.

코드

#include <iostream>
using namespace std;
int main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    int n, num, sum = 0, ret = -1001;
    cin >> n;
    while (n--)
    {
        cin >> num;
        sum += num;
        ret = max(ret, sum);
        if (sum < 0)
            sum = 0;
    }
    cout << ret;
    return 0;
}

풀이

만약 1이라도 남아있다면 다른 값과 이어서 더 커질 수 있다는 사실을 깨달으면 쉬워진다.

profile
연락 : publicminsu@naver.com

0개의 댓글