[백준] 1912번: 연속합

ByWindow·2021년 8월 5일
0

Algorithm

목록 보기
40/104
post-thumbnail

📝문제

지난 번 풀었던 DP문제보다는 훨씬 쉬웠다. 점화식을 문제 보자마자 바로 생각해 낼 수 있었던 문제

📌코드

package Baekjoon;

import java.util.*;
import java.io.*;

public class BOJ1912 {

    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int[] numbers = new int[n];
        int[] dp = new int[n];
        st = new StringTokenizer(br.readLine());
        for(int i = 0; i < n; i++){
            numbers[i] = Integer.parseInt(st.nextToken());
        }
        /**
         * 첫번째 인덱스부터 계속 더해나가는 dp 배열을 만든다
         * 더했을 때 0보다 작으면 초기화하고 해당 인덱스부터 다시 더해나간다
         */
        dp[0] = numbers[0];
        int answer = dp[0];
        for(int i = 1; i < n; i++){
            dp[i] = Math.max(dp[i-1] + numbers[i], numbers[i]);
            answer = Math.max(dp[i], answer);
        }
        System.out.println(answer);
    }
}
profile
step by step...my devlog

0개의 댓글