티스토리 뷰
https://www.acmicpc.net/problem/1912
코드
tmp > arr[i] 조건을 거치지 않으면 오답 처리가 된다.
반례
입력:
5
-1 -1 10 -1 -1
출력:
10
오답(조건문 사용x):
9
import java.io.*;
import java.util.*;
public class Main {
static int n;
static int[] arr;
static int[] dp;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
arr = new int[n + 1];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 1; i <= n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
dp = new int[n + 1];
dp[1] = arr[1];
System.out.println(solution());
}
static int solution() {
int max = dp[1];
for (int i = 2; i <= n; i++) {
int tmp = dp[i - 1] + arr[i];
dp[i] = tmp > 0 && tmp > arr[i] ? dp[i - 1] + arr[i] : arr[i];
max = Math.max(max, dp[i]);
}
return max;
}
}