n = int(input()) # 수열의 크기
numbers = list(map(int, input().split())) # 수열
dp = [0 for _ in range(n)] # dp 배열
answer = -1001 # 주어진 수열의 원소 범위보다 더 작게 설정
for i in range(n):
dp[i] = max(dp[i-1] + numbers[i], numbers[i]) # 이전까지의 연속 합 vs 현재 숫자 (현재 숫자 택하면 꼬리자르기)
answer = max(dp[i], answer) # 현재까지의 합이 더 크다면 answer 갱신
print(answer)
'Algorithm > Baekjoon' 카테고리의 다른 글
[Python] 1463. 1로 만들기 (0) | 2021.09.28 |
---|---|
[Python] 11052. 카드 구매하기 (0) | 2021.09.26 |
[Python] 11053. 가장 긴 증가하는 부분 수열 (0) | 2021.09.26 |
[Python] 2579. 계단오르기 (0) | 2021.09.23 |
[Python] 11659. 구간 합 구하기 4 (0) | 2021.09.19 |