문제
풀이
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] line = br.readLine().split(" ");
int[] arr = new int[n];
int[] dp = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(line[i]);
}
int max = dp[0] = arr[0]; // dp[0]은 이전까지의 최대값이 없으므로 arr[0]으로 초기화한다.
// (바로 전까지의 최댓값에서 현재 값을 더하기) or (모든 값을 버리고 현재 값을 더하기) 중 최댓값을 고른다.
for (int i = 1; i < n; i++) {
dp[i] = Math.max(dp[i - 1] + arr[i], arr[i]);
max = Math.max(max, dp[i]);
}
System.out.println(max);
}
}
'알고리즘(코딩테스트)' 카테고리의 다른 글
백준 23971번 ZOAC 4(JAVA) (1) | 2024.02.27 |
---|---|
백준 1655번 가운데를 말해요 (0) | 2023.05.09 |
백준 2294번 동전 2(JAVA) (0) | 2022.03.02 |
백준 15683번 감시(JAVA) (0) | 2022.03.02 |
백준 1149번 RGB거리(JAVA) (0) | 2022.03.01 |
댓글