[DP] [백준 / 1912] 실버 2 - 연속합 (java/자바)

SlowAnd·2024년 2월 17일

[DP] [백준 / 1912] 실버 2 - 연속합 (java/자바)

문제

접근

현재 arr의 값 VS 이전 dp 값 + 현재 arr의 값
이 중에 큰 값이 dp에 들어간다.

이후 dp 배열 중 가장 큰 값을 출력한다.

성공 코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(r.readLine());
        int[] arr = Arrays.stream(r.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        int[] dp = new int[n];
        dp[0] = arr[0];
        for (int i = 1; i < n; i++) {
            dp[i] = Math.max(arr[i],dp[i-1]+ arr[i]);
        }

        System.out.println(Arrays.stream(dp).max().getAsInt());

    }
}

0개의 댓글