알고리즘/DP
[백준] 1912 연속합
HJ39
2023. 4. 8. 23:59
DP 문제들은 문제를 풀 수록 어렵네;
점화식 찾기가 너무 어려워ㅓㅓ
최대값을 구하는 방법으로 입력받은 값 array[i]과 이전까지의 값(dp[i-1])을 비교하여 큰 값을 dp[i]에 저장하면 된다.
#include <bits/stdc++.h>
using namespace std;
void yeun1912(){
int n;
scanf("%d",&n);
int array[100'001];
int dp[100'001];
for(int i=0;i<n;i++){
int num;
scanf("%d",&num);
array[i] = num;
}
dp[0] = array[0];
int ans = dp[0];
for(int i=1;i<n;i++){
dp[i] = max(array[i], dp[i-1] + array[i]);
if(ans < dp[i])
ans = dp[i];
}
printf("%d\n",ans);
}