-

DP :: 백준 :: 연속합 :: 1912 본문

알고리즘/DP

DP :: 백준 :: 연속합 :: 1912

lingi04 2016. 11. 6. 03:54




[문제 풀이]

dp[i]를 index가 i일때의 연속합이라고 정의하면

    dp[i] = max(ar[i], dp[i-1]+ar[i])

이런 점화식을 구할 수 있다.


우선 10개의 숫자가 입력됐을 때 방금 구한 점화식으로 연속합을 구해보면

index 

10 

입력 

 10

-4

3

1

5

6

-35

12

21

-1

 연속합

10 

10 

15 

21 

-14 

12 

33 

32 

표와 같고, 연속합의 최댓값은 index가 9일때 33(12+21)이라는 것을 알 수 있다.



계산을 모두 마친 후, dp배열에 저장된 연속합들 중 가장 큰 값을 출력하면 끝!!



※풀이 과정에 문제가 있으면 언제든 지적 받습니다!※

Comments