1912번: 연속합
첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다.
www.acmicpc.net
[백준/BOJ] 1912번 연속합 (C/C++) (tistory.com)
[백준/BOJ] 1912번 연속합 (C/C++)
백준 온라인 저지(BOJ) 1912번 연속합 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다
rightbellboy.tistory.com
- 동적 계획법 = 기억하며 풀기
- n번까지의 연속합의 최대값은 [n-1번까지의 최대값 + n번 값] or [n번 값] 둘 중 큰 값이다.
#include <iostream>
using namespace std;
#define max(x,y) x > y ? x : y
int main() {
int n;
int arr[100000];
int dp[100000];
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> arr[i];
}
int ret = arr[0];
dp[0] = arr[0];
for (int i = 1; i < n; ++i) {
dp[i] = max(dp[i - 1] + arr[i], arr[i]);
ret = max(dp[i], ret);
}
cout << ret << "\n";
return 0;
}
'‡ CODING TEST STUDY ‡ > º 백준' 카테고리의 다른 글
[백준 11057 C++] 오르막 수 (1) | 2023.10.14 |
---|---|
[백준 10844번 C++] 쉬운 계단 수 (0) | 2023.10.12 |
[백준 2193번 C++] 이친수 (0) | 2023.10.07 |
[백준 1463번 C++] 1로 만들기 (0) | 2023.10.07 |
[백준 9095번 C++] 1,2,3 더하기 (0) | 2023.10.07 |