[백준]1912 연속합

서은경·2022년 12월 22일
0

CodingTest

목록 보기
48/71

직전에 풀었던 문제랑 유형이 완전 똑같아서 쉽게 풀었다!

package baekjoon;

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

public class Main_1912 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        int[] num = new int[n];
        int[] dp = new int[n];
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int idx=0;
        while (st.hasMoreTokens()) {
            num[idx] = Integer.valueOf(st.nextToken());
            idx++;
        }

        dp[0] = num[0];
        for (int i = 1; i < n; i++) {
            //연속된 합과 현재값을 더한것보다 현재값이 크면 갱신
            dp[i] = Math.max(dp[i-1]+num[i], num[i]);
            //System.out.println(dp[i]);
        }
        System.out.println(Arrays.stream(dp).max().getAsInt());
        //Arrays.stream(num).forEach(System.out::println);
    }
}

근데 이중포문을 돌려서 한번 시간 초과가 났다. 생각해보니 이중포문을 돌릴 필요가 없었ㅇ는데.. 암튼 완료 ~!

0개의 댓글

관련 채용 정보