https://www.acmicpc.net/problem/11722
더보기
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n;
vector<int> arr;
vector<int> dp;
cin >> n;
arr.resize(n + 1);
dp.resize(n + 1);
for (int i = 1; i <= n; i++) {
cin >> arr[i];
dp[i] = 1;
}
dp[0] = 0;
for (int i = 2; i <= n; i++) {
for (int j = 1; j < i; j++) {
if (arr[i] < arr[j]) {
dp[i] = (dp[i] > dp[j] + 1 ? dp[i] : dp[j] + 1);
}
}
}
int mx = -1;
for (int i = 1; i <= n; i++) {
if (mx < dp[i]) mx = dp[i];
}
cout << mx;
}
'Algorithm > Algorithm 문제 풀이' 카테고리의 다른 글
[BAE/<JOON> 문제풀이] 1520. 내리막길 (DP.032) (0) | 2020.05.07 |
---|---|
[BAE/<JOON> 문제풀이] 11054. 가장 긴 바이토닉 부분 수열 (DP.030) (0) | 2020.05.05 |
[BAE/<JOON> 문제풀이] 2133. 타일 채우기 (DP.028) (0) | 2020.05.05 |
[BAE/<JOON> 문제풀이] 2618. 경찰차 (DP.027) (0) | 2020.05.04 |
[BAE/<JOON> 문제풀이] 이항계수 2 (DP.026) (0) | 2020.05.03 |