on
[백준][Java] 1912번 연속합 (DP, 누적합)
[백준][Java] 1912번 연속합 (DP, 누적합)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
private static BufferedReader br = new BufferedReader( new InputStreamReader( System . in ));
private static BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( System . out ));
public static void main( String [] args) throws IOException{
int n = stoi(br.readLine());
String [] str = br.readLine(). split ( " " );
int [] DP = new int [n + 1 ];
int max = Integer.MIN_VALUE;
for ( int i = 1 ; i < = n; i + + ) {
int num = stoi(str[i - 1 ]);
// DP[i] = (DP[i-1] + num > 0)? DP[i-1] + num : 0;
if (DP[i - 1 ] < 0 & & num > = 0 )
DP[i] = num;
else if (DP[i - 1 ] < 0 & & num < 0 ) {
DP[i] = (DP[i - 1 ] > num)? DP[i - 1 ] : num;
}
else
DP[i] = DP[i - 1 ] + num;
max = Math.max(max,DP[i]);
}
System . out . println (max);
// bw.write(sBuilder.toString());
// bw.flush();
// bw.close();
}
private static int stoi( String input) {
return Integer. parseInt (input);
}
}
from http://aig2029.tistory.com/288 by ccl(A) rewrite - 2021-09-19 06:27:56