💻 C++ 기반
가장 큰 증가 부분 수열
https://www.acmicpc.net/problem/11055
#include <cstdio>
#include <algorithm>
#define MAX_N 1001
using namespace std;
int A[MAX_N];
int dp[MAX_N];
int main()
{
int N;
scanf("%d", &N);
for (int i = 1; i <= N; i++)
{
scanf("%d", &A[i]);
dp[i] = A[i];
}
dp[0] = 0;
for (int i = 1; i <= N; i++)
{
for (int j = 0; j < i; j++)
{
if (A[i] > A[j])
{
dp[i] = max(dp[i], dp[j] + A[i]);
}
}
}
printf("%d", *max_element(dp, dp + N + 1));
return 0;
}
max_element(), min_element()
: [forward, last) 범위 내 최대값, 최소값을 리턴#include <algorithm> vector<int> v; *max_element(v.begin(), v.end()); *min_element(v.begin(), v.end());