//https://www.acmicpc.net/problem/11568 #include <iostream> | |
#include <algorithm> | |
using namespace std; | |
int dp[1001]; | |
int num[1001]; | |
int main(){ | |
int N; | |
int mx=1; | |
cin >> N; | |
for(int i=1; i<=N; i++) cin >> num[i]; | |
dp[1]=1; | |
for(int i=2; i<=N; i++){ | |
for(int j=i; j>=0; j--){ | |
if(num[j]<num[i]){ | |
dp[i]=max(dp[i],dp[j]+1); | |
} | |
} | |
mx=max(mx,dp[i]); | |
} | |
cout << mx; | |
} |
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
180216_2605_줄 세우기 (0) | 2018.02.16 |
---|---|
180215_10451_순열 사이클 (0) | 2018.02.15 |
180213_1563_개근상 (0) | 2018.02.13 |
180212_5554_심부름 가는 길 (0) | 2018.02.12 |
180210_1057_토너먼트 (0) | 2018.02.10 |