• 코드

정답 코드 : dp를 이용해서 풀었다. 그 전에 dp값과 현재 number값을 더한값과 현재 number값을 비교해서 큰값을 dp[i]에 저장 dp[i]와 max를 비교해서 큰값을 max 변수에 저장하면 최종으로 max에 가장 큰 값이 저장된다.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
import java.util.StringTokenizer;

public class Main {
	
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub        
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int [] number = new int[n];
		int [] dp = new int[n];
		
		for(int i=0;i<n;i++)
			number[i]=Integer.parseInt(st.nextToken());
		
	    dp[0] = number[0];
	    int max = number[0];
	    for(int i=1; i<n; i++){
	         dp[i] = Math.max(dp[i-1]+number[i], number[i]);
	           
	         max = Math.max(max, dp[i]);
	    }

	    System.out.println(max);		

    }
}

+ Recent posts