Dev.baelanche

[백준 1912] 연속합 본문

Data Structure & Algorithm/PS - JAVA

[백준 1912] 연속합

baelanche 2019. 5. 9. 21:04
반응형

 

수열의 크기와 같은 크기의 dp 배열을 만들어 각 인덱스별로 최대값을 저장한다.

 

수열의 값 중 적어도 한 개를 선택해야 하고 연속적으로 사용해야 하므로,

이전 dp의 최대값 + 현재 배열의 값 / 현재 배열의 값을 비교하여 큰 것을 사용하면 된다.

 

public class Main {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int a[] = new int[n];
        int dp[] = new int[n];
        for(int i=0; i<n; i++)
            a[i] = sc.nextInt();
        
        dp[0] = a[0];
        int max = dp[0];
        for(int i=1; i<n; i++) {
            dp[i] = max(dp[i-1] + a[i], a[i]);
            max = max(max, dp[i]);
        }
        System.out.println(max);
    }
    
    public static int max(int a, int b) {
        return a > b ? a : b;
    }
}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 1010] 다리 놓기  (0) 2019.05.09
[백준 10844] 쉬운 계단 수  (0) 2019.05.09
[백준 2290] LCD Test  (0) 2019.05.08
[백준 2447] 별 찍기 - 10  (0) 2019.05.07
[백준 1074] Z  (0) 2019.05.07
Comments