DHistory

[Baekjoon] DP - 1912 연속합 본문

Computer Science/Algorithm

[Baekjoon] DP - 1912 연속합

ddu0422 2023. 9. 25. 07:10

문제

 

1912번: 연속합

첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.

www.acmicpc.net

 

풀이

"""
d[n]: 연속된 몇 개의 수를 선택하여 가장 큰 합
"""
import sys

n = int(sys.stdin.readline().rstrip())
numbers = [0] + list(map(int, sys.stdin.readline().rstrip().split()))[:n]


def solution(a):
    d = [0] * len(a)

    for i in range(1, len(a)):
        d[i] = max(d[i - 1] + a[i], a[i])

    return max(d[1:])


print(solution(numbers))

 

채점 결과