BOJ-2565
11 Aug 2021기초 DP! aka 동적계획법
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int dp[102];
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int N, a, b;
vector<pair<int, int>> v;
cin >> N;
v.emplace_back(0, 0);
for (int i = 0; i < N; i++) {
cin >> a >> b;
v.emplace_back(a, b);
}
sort(v.begin(), v.end());
int result = 0;
for (int i = 1; i <= N; i++) {
for (int j = 0; j < i; j++)
if ((v[i].second > v[j].second) && (dp[j] >= dp[i])) dp[i] = dp[j] + 1;
result = max(result, dp[i]);
}
cout << N - result << endl;
return 0;
}