BOJ 1912 연속합

Link

앞에서부터 더해온 값 중 최댓값과 다음을 더한 새로운 값을 비교하여 최댓값을 구해줍시다.

코드 (C++)

#include <iostream>

using namespace std;

int num[100001], dp[100001];

int main(int argc, const char *argv[]) {
cin.tie(nullptr);
ios::sync_with_stdio(false);

int N;
cin >> N;

for (int i = 1; i <= N; i++) {
cin >> num[i];
}
for (int i = 1; i <= N; i++) {
dp[i] = dp[i - 1] + num[i] > num[i] ? dp[i - 1] + num[i] : num[i];
}
int max = dp[1];

for (int i = 2; i <= N; i++) {
if (max < dp[i]) {
max = dp[i];
}
}
cout << max << endl;

return 0;
}
Total views

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×