[Python] 1912 연속합

이세령·2023년 10월 13일
0

알고리즘

목록 보기
42/43

문제

https://www.acmicpc.net/problem/1912

풀이과정

  • 입력
    주어지는 정수의 개수 n
    n개의 정수들
  • 출력
    연속된 수들중 최댓값

이전값과 연속해서 더하는데값이 더 작아질 경우 pass한다.
dp[i] = max(arr[i], dp[i-1] + arr[i])

0123456789
arr[i]10-43156-351221-1
dp[i-1] + arr[i]10+(-4)6 + 39 + 110 + 515 + 621 + (-35)-14 + 1212 + 2133 + (-1)
dp[i]1069101521-14-23332
import sys
input = sys.stdin.readline

n = int(input())
arr = list(map(int, input().split()))
dp = [0] * n
dp[0] = arr[0]

for i in range(1, n):
    dp[i] = max(arr[i], dp[i-1] + arr[i])
print(max(dp))
profile
https://github.com/Hediar?tab=repositories

0개의 댓글