관리 메뉴

Partially Committed

[λ°±μ€€ 1912] 연속합 (JAVA) λ³Έλ¬Έ

πŸ”₯ Algorithm || λ¬Έμ œν’€μ΄/PS

[λ°±μ€€ 1912] 연속합 (JAVA)

WonderJay 2023. 1. 16. 18:03
728x90
λ°˜μ‘ν˜•
SMALL
μ‹œκ°„ μ œν•œλ©”λͺ¨λ¦¬ μ œν•œμ œμΆœμ •λ‹΅λ§žνžŒ μ‚¬λžŒμ •λ‹΅ λΉ„μœ¨
1 초 (μΆ”κ°€ μ‹œκ°„ μ—†μŒ) 128 MB 115866 41697 29399 34.685%

문제

n개의 μ •μˆ˜λ‘œ 이루어진 μž„μ˜μ˜ μˆ˜μ—΄μ΄ 주어진닀. μš°λ¦¬λŠ” 이 쀑 μ—°μ†λœ λͺ‡ 개의 수λ₯Ό μ„ νƒν•΄μ„œ ꡬ할 수 μžˆλŠ” ν•© 쀑 κ°€μž₯ 큰 합을 κ΅¬ν•˜λ €κ³  ν•œλ‹€. 단, μˆ˜λŠ” ν•œ 개 이상 선택해야 ν•œλ‹€.

예λ₯Ό λ“€μ–΄μ„œ 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 μ΄λΌλŠ” μˆ˜μ—΄μ΄ μ£Όμ–΄μ‘Œλ‹€κ³  ν•˜μž. μ—¬κΈ°μ„œ 정닡은 12+21인 33이 정닡이 λœλ‹€.

μž…λ ₯

첫째 쀄에 μ •μˆ˜ n(1 ≤ n ≤ 100,000)이 주어지고 λ‘˜μ§Έ μ€„μ—λŠ” n개의 μ •μˆ˜λ‘œ 이루어진 μˆ˜μ—΄μ΄ 주어진닀. μˆ˜λŠ” -1,000보닀 ν¬κ±°λ‚˜ κ°™κ³ , 1,000보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜μ΄λ‹€.

좜λ ₯

첫째 쀄에 닡을 좜λ ₯ν•œλ‹€.


N 개의 μ›μ†Œλ₯Ό κ°€μ§€λŠ” μˆ˜μ—΄μ—μ„œ μ—°μ†λœ 합을 κ΅¬ν•˜μ˜€μ„ λ•Œ ꡬ할 수 μžˆλŠ” ν•© 쀑 κ°€μž₯ 큰 값을 좜λ ₯ν•˜λ©΄ λœλ‹€.

 

dp[i] λ₯Ό μ‹œμž‘μ΄ μ–΄λ”˜μ§€λŠ” λͺ¨λ₯΄κ² μ§€λ§Œ i 번째 κΉŒμ§€μ˜ ν•© 쀑, κ°€μž₯ μ΅œλŒ€μ˜ 값이라고 μ •μ˜ν•˜μž.

 

그러면 μ•„λž˜μ™€ 같은 점화식을 λ– μ˜¬λ¦΄ 수 μžˆλ‹€.

 

dp[ i ] = Max ( dp[i-1] + arr[ i ] , arr[ i ] )

 

말둜 ν’€μ–΄μ„œ μ„€λͺ…ν•˜λ©΄,

 

i λ²ˆμ§ΈκΉŒμ§€μ˜ μ΅œλŒ€ 합은

i - 1 λ²ˆμ§ΈκΉŒμ§€ ꡬ할 수 μžˆλŠ” μ΅œλŒ€ν•©μ— i 번째의 값을 λ”ν•œ κ°’κ³Ό

κ·Έλƒ₯ i 번째 κ°’ ν•˜λ‚˜λ₯Ό λΉ„κ΅ν•˜μ˜€μ„ λ•Œ 더 큰 μͺ½μ΄λ‹€.

 

이λ₯Ό κ΅¬ν˜„ν•˜μ—¬ dp table 을 μ±„μš΄ λ’€, κ°€μž₯ μ΅œλŒ€μ˜ 값을 좜λ ₯ν•΄μ£Όλ©΄ ν•΄κ²°λœλ‹€.

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int [] arr = new int[n];
        int [] dp = new int[n];
        for(int i = 0 ; i < n ; i++){
            arr[i] = sc.nextInt();
        }
        dp[0] = arr[0];
        for(int i = 1 ; i < n ; i++){
            dp[i] = Math.max(dp[i-1]+arr[i], arr[i]);
        }
        int ans = dp[0];
        for(int i = 1 ; i < n; i ++){
            ans = Math.max(ans, dp[i]);
        }
        System.out.println(ans);
    }
}

 

 

 

728x90
λ°˜μ‘ν˜•
LIST
Comments