1일1알

백준 2631번 줄세우기 C++ 본문

알고리즘

백준 2631번 줄세우기 C++

영춘권의달인 2022. 3. 12. 15:50

출처 : https://www.acmicpc.net/problem/2631

 

전체 아이들의 수에서 가장 긴 증가하는 부분 수열의 수를 빼면 된다.

 

#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>

using namespace std;
using ll = long long;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int n;
	cin >> n;
	vector<int> v(n);
	for (int i = 0; i < n; i++) {
		cin >> v[i];
	}
	vector<int> dp(n, 1);
	int max_length = 0;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < i; j++) {
			if (v[j] < v[i]) {
				dp[i] = max(dp[i], dp[j] + 1);
			}
		}
		max_length = max(max_length, dp[i]);
	}
	cout << n - max_length;
};

'알고리즘' 카테고리의 다른 글

백준 13023번 ABCDE C++  (0) 2022.03.14
백준 14226번 이모티콘 C++  (0) 2022.03.13
백준 4158번 CD C++  (0) 2022.03.11
백준 14246번 k보다 큰 구간 C++  (0) 2022.03.10
백준 2118번 두 개의 탑 C++  (0) 2022.03.09