최대 연속 수익

면접 대비

시간 제한1초메모리 제한128 MB

요약
N일 동안의 일별 이익이 주어질 때, 연속한 날짜 구간의 합 중 최댓값을 구한다.
난이도

쉬움10점 중 3점

유형
배열, 동적 계획법, 그리디, 누적 합
정답자
아직 제출이 없습니다

문제

소들이 새로운 사업을 시작했고, 농부 존은 그 사업이 얼마나 잘 되고 있는지 확인하려고 합니다. 사업은 NN일 동안 운영되었으며(1≤N≤100,0001 \le N \le 100{,}000), 각 날 ii마다 소들은 그날의 순이익 PiP_i를 기록했습니다(−1,000≤Pi≤1,000-1{,}000 \le P_i \le 1{,}000).

농부 존은 연속된 하루 이상의 기간 중에서 순이익의 합이 가장 큰 값을 구하고 싶어 합니다. 이 기간은 짧게는 하루, 길게는 전체 NN일까지 될 수 있습니다. 연속된 며칠 동안의 순이익 합의 최댓값을 구하는 프로그램을 작성하세요.

입력

  • 첫째 줄: 정수 NN.
  • 둘째 줄부터 N+1N+1째 줄까지: i+1i+1째 줄에 정수 PiP_i가 하나씩 주어집니다.

출력

  • 첫째 줄: 연속된 기간 중 순이익 합의 최댓값을 나타내는 정수 하나.

힌트

예시에서 최댓값은 둘째 날부터 여섯째 날까지의 순이익을 더해서 얻어집니다(4+9−2−5+8=144 + 9 - 2 - 5 + 8 = 14).

예제5

  1. 예제 1

    입력
    7
    -3
    4
    9
    -2
    -5
    8
    -3
    
    예상 출력
    14
    
  2. 예제 2

    입력
    1
    5
    
    예상 출력
    5
    
  3. 예제 3

    입력
    1
    -7
    
    예상 출력
    -7
    
  4. 예제 4

    입력
    5
    -5
    -2
    -8
    -1
    -9
    
    예상 출력
    -1
    
  5. 예제 5

    입력
    4
    1
    2
    3
    4
    
    예상 출력
    10