728x90
Key Point
1. 일반적인 dp문제와 같이 규칙을 찾아 점화식으로 나타내면 되는 문제이다.
2. 이 문제는 본인 값 & 이전 값 dp랑 본인값 합한 값 중 max를 dp에 갱신하면 되는 문제이다.
3. 각 dp에는 해당 수까지의 최대의 값이 저장 되어 있다.
시간 초과
import sys
mini = -sys.maxsize
input = sys.stdin.readline
n = int(input())
num = list(map(int, input().split()))
dp = [mini] * 100000
for i in range(n): #8
sum = num[i]
for j in range(i-1,-1,-1): #0
sum += num[j]
dp[i] = max(sum,dp[i])
print(max(dp))
정답
import sys
input = sys.stdin.readline
n = int(input())
num = list(map(int, input().split()))
dp = [0] * n
dp[0] = num[0]
for i in range(1,n):
dp[i] = max(num[i], dp[i-1] + num[i])
print(max(dp))
728x90
'백준 풀이' 카테고리의 다른 글
[백준/BOJ] - 1932번 python 풀이 - DP (0) | 2023.01.04 |
---|---|
[백준/BOJ] - 2156번 python 풀이 - DP (0) | 2022.12.29 |
[백준/BOJ] - 11503번 python 풀이 - DP (0) | 2022.12.29 |
[백준/BOJ] - 2579번 python 풀이 - DP (1) | 2022.12.29 |
[백준/BOJ] - 1149번 python 풀이 - DP (4) | 2022.12.29 |