본문 바로가기

알고리즘/Greedy Algorithm

백준(BOJ) 1912: 연속합

https://www.acmicpc.net/problem/1912

점화식등 다해놓고 안타깝게도 아래 max변수의 초기값을 생각없이 -1로 무턱대고 잡았다가 오답이 떳다. 초기화을 함부로 주지 말자.

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

public class Testing3{
    public static void solution(int n, int[]arr){
        int[]dp=new int[n];
        dp[0]=arr[0];
        for(int i=1;i<n;++i){
            dp[i]=Math.max(dp[i-1]+arr[i], arr[i]);
            }
        int max=arr[0];
        for(var ele:dp)
            max=Math.max(ele, max);
        System.out.println(max);
        }


    public static void main(String[]args)throws Exception{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int n=Integer.parseInt(br.readLine());
        int[]arr= Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        solution(n, arr);
    }
}