접근
DP 문제로써 dp[i]에
- 직전까지의 부분합 dp[i - 1]과 현재 값 m[i]를 더한 값
- 현재 값 m[i]
를 비교하여 둘 중 큰 값을 저장함으로써 문제를 해결할 수 있다.
코드
import sys
n = int(sys.stdin.readline())
m = [0] + list(map(int, sys.stdin.readline().split()))
dp = [-1001 for _ in range(n + 1)]
for i in range(1, n + 1):
dp[i] = max(dp[i - 1] + m[i], m[i])
print(max(dp))
더 생각해 볼 것?
...
반응형
'코딩 > 백준 (Python)' 카테고리의 다른 글
백준 1931번: 회의실 배정 (Python) (0) | 2021.03.30 |
---|---|
백준 12865번: 평범한 배낭 (Python, PyPy3) (0) | 2021.03.30 |
백준 9251번: LCS (Python) (0) | 2021.03.30 |
백준 2565번: 전깃줄 (Python) (0) | 2021.03.29 |
백준 11054번: 가장 긴 바이토닉 부분 수열 (Python) (0) | 2021.03.29 |
최근댓글