연관문제 1,2에서 dp의 값을 부분 수열의 최대 길이로 했다면, 이 문제는 부분 수열의 최대 합을 구해주면 된다.
#include <iostream>
#include <algorithm>
using namespace std;
#define MAX 1001
int main() {
std::ios::sync_with_stdio(false);
int N;
int num[MAX] = {0}, dp[MAX] = {0};
cin >> N;
for(int i = 1; i <= N; i++)
cin >> num[i];
for(int i = 1; i <= N; i++)
dp[num[i]] = *max_element(dp, dp + num[i]) + num[i];
cout << *max_element(dp + 1, dp + MAX);
}
안녕하세요, tech 기업에서 일하는/ 일하기를 희망하는 여성들을 모아서 모임을 만들고 있습니다.
자세한 사항은 아래 링크 참조바랍니다 :)
https://velog.io/@emilyscone/SheKorea-1%EA%B8%B0-%EB%A9%A4%EB%B2%84%EB%A5%BC-%EB%AA%A8%EC%A7%91%ED%95%A9%EB%8B%88%EB%8B%A4