https://www.acmicpc.net/problem/1965
더보기
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> arr, dp;
int n;
cin >> n;
arr.resize(n + 1);
dp.resize(n + 1);
for (int i = 1; i <= n; i++) {
cin >> arr[i];
}
dp[1] = 1;
for (int i = 2; i <= n; i++) {
int mx = 0;
for (int j = 1; j < i; j++) {
if (mx < dp[j] && arr[j] < arr[i]) {
mx = dp[j];
}
}
dp[i] = mx + 1;
}
int mxx = dp[1];
for (int i = 1; i <= n; i++) {
if (mxx < dp[i]) mxx = dp[i];
}
cout << mxx;
return 0;
}
'Algorithm > Algorithm 문제 풀이' 카테고리의 다른 글
[BAE/<JOON> 문제풀이] 3943. 헤일스톤 수열 (DP.040) (0) | 2020.05.13 |
---|---|
[BAE/<JOON> 문제풀이] 1915. 가장 큰 정사각형 (DP.039) (0) | 2020.05.12 |
[BAE/<JOON> 문제풀이] 6359. 만취한 상범 (DP.037) (0) | 2020.05.12 |
[BAE/<JOON> 문제풀이] 1937. 욕심쟁이 판다 (DP.036) (0) | 2020.05.11 |
[BAE/<JOON> 문제풀이] 1309. 동물원 (DP.035) (0) | 2020.05.10 |