최대가 되는 연속 합 구하기.
입력 | 출력 |
---|---|
10 10 -4 3 1 5 6 -35 12 21 -1 | 33 |
10 2 1 -4 3 4 -4 6 5 -5 1 | 14 |
5 -1 -2 -3 -4 -5 | -1 |
dp로 푸는 것이라는 걸 알면 매우 쉽지만 문제만 보고 바로 dp를 떠올리지는 못했다.
: i번째 원소와 바로 이전 dp와 i번째 원소의 합을 비교해서 더 큰 수를 dp에 넣는다.
n = int(input())
nums = list(map(int, input().split()))
dp = []
dp.append(nums[0])
for i in range(1, len(nums)):
dp.append(max(nums[i], nums[i]+dp[i-1]))
print(max(dp))