문제 분석
- 각 배열에 직전까지의 최대 합을 구해서 저장한다.
- 각 배열의 결과를 정답을 저장할 변수와 비교하여 최대값을 갱신한다.
문제 풀이
1) 배열의 값을 입력받는다.
2) 직전까지의 최대 합과 현재 배열의 값을 비교하여 더 큰 값을 넣어준다.
3) 정답을 담은 변수와 해당 배열의 값을 비교하여 정답에 최대값을 갱신한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
private static int[] map;
private static int ans;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
map = new int[N+1];
StringTokenizer st = new StringTokenizer(br.readLine());
ans = Integer.MIN_VALUE;
for (int i = 1; i <= N; i++) {
map[i] = Integer.parseInt(st.nextToken());
map[i] = Math.max(map[i-1]+map[i], map[i]);
ans = Math.max(ans, map[i]);
}
System.out.println(ans);
}// main
}// class-end
'Algorithm > BOJ' 카테고리의 다른 글
BOJ 1932 정수 삼각형 (0) | 2021.04.07 |
---|---|
BOJ 1890 점프 (0) | 2021.04.07 |
BOJ 1463 1로만들기 (0) | 2021.03.31 |
BOJ 9461 파도반 수열 (0) | 2021.03.31 |
BOJ 1003 피보나치 함수 (0) | 2021.03.31 |