티스토리 뷰

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

코드

tmp > arr[i] 조건을 거치지 않으면 오답 처리가 된다.

반례 

입력:
5
-1 -1 10 -1 -1

출력:
10

오답(조건문 사용x):
9
import java.io.*;
import java.util.*;

public class Main {

    static int n;
    static int[] arr;
    static int[] dp;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        n = Integer.parseInt(br.readLine());
        arr = new int[n + 1];

        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 1; i <= n; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }

        dp = new int[n + 1];
        dp[1] = arr[1];

        System.out.println(solution());
    }

    static int solution() {
        int max = dp[1];
        for (int i = 2; i <= n; i++) {
            int tmp = dp[i - 1] + arr[i];
            dp[i] = tmp > 0 && tmp > arr[i] ? dp[i - 1] + arr[i] : arr[i];
            max = Math.max(max, dp[i]);
        }
        
        return max;
    }
}
Total
Today
Yesterday
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30