DP
- 최적의 연속합에 현재 인덱스 값을 더한 값과 현재 인덱스 값을 비교한다.
- 전자값이 더 크다면 값을 업데이트한다.
- 매번 연속합이 구해질때마다 answer를 업데이트한다.
import java.io.*;
import java.util.*;
public class Main_1912_연속합 {
static int N, answer, numbers[], dp[];
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
N = Integer.parseInt(br.readLine());
numbers = new int[N];
dp = new int[N];
st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++) numbers[i] = Integer.parseInt(st.nextToken());
answer = dp[0] = numbers[0];
for(int i=1; i<N; i++) {
dp[i] = Math.max(dp[i-1]+numbers[i], numbers[i]);
answer = Math.max(dp[i], answer);
}
System.out.println(answer);
br.close();
}
}