문제.
풀이.
dp[0]에 arr[0]의 값을 넣어준 뒤
연속으로 더하는게 더 큰 숫자면 더한 값을 dp에 넣어주고 더하지 않고 새로운 숫자를 넣어주는게 값이 더 크다면 그 값을 dp에 넣어주는 방식으로 계속 진행을 한다.
그리고 dp에서 제일 큰 값을 출력한다.
소스코드.
import sys
n = int(sys.stdin.readline())
arr = list(map(int, sys.stdin.readline().split()))
dp = [arr[0]]
for i in range(n-1):
dp.append(max(dp[i] + arr[i+1], arr[i+1]))
print(max(dp))
'프로그래밍 > 백준' 카테고리의 다른 글
백준 7576 토마토 - 파이썬 (0) | 2021.07.21 |
---|---|
백준 1012 유기농 배추 - 파이썬 (0) | 2021.07.20 |
백준 2565 전깃줄 - 파이썬 (0) | 2021.07.19 |
백준 11054 가장 긴 바이토닉 부분 수열 - 파이썬 (0) | 2021.07.19 |
백준 11053 - 가장 긴 증가하는 부분 수열 (0) | 2021.07.14 |