본문 바로가기
알고리즘 문제 풀이/동적프로그래밍

백준 - 연속합

by 가나무마 2021. 12. 23.
728x90

본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.

문의는 댓글 바람.

문제 출처 : https://www.acmicpc.net/problem/1912

 

[문제 설명]

동적프로그래밍으로 연속부분최대곱 문제를 보다가 전에 이거랑 비슷한 문제가 있었다는 생각이 들어서 풀었다.

 

[자바]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
    public static void main(String[] args) throws IOException {
        // 입력 받기
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int[] numbers = new int[N];
        int index = 0;
        for (String s : br.readLine().split(" ")) numbers[index++] = Integer.parseInt(s);
        int answer = numbers[0];

        for (int i = 0; i < numbers.length-1; i++) {
            if (numbers[i] + numbers[i+1] > numbers[i+1]) numbers[i+1] += numbers[i];
            answer = Math.max(numbers[i+1],answer);
        }
        System.out.println(answer);
    }
}

[파이썬]

N = input()
numbers = input().split(" ")
for i in range(0, len(numbers)):
    numbers[i] = int(numbers[i])
answer = numbers[0]

for i in range(0,len(numbers)-1):
    if (numbers[i]+numbers[i+1] > numbers[i+1]): numbers[i+1] = numbers[i+1] + numbers[i]
    answer = max(answer,numbers[i+1])
print(answer)

 

 

728x90
반응형

'알고리즘 문제 풀이 > 동적프로그래밍' 카테고리의 다른 글

백준 - 이친수(Kotlin)  (0) 2022.02.05
백준 - 계단 오르기  (0) 2022.01.29
백준 - 이름 궁합  (0) 2021.12.12
2747 피보나치  (0) 2021.10.29
509. Fibonacci Number  (0) 2021.10.25