LIS 문제 - 34. 병사 배치하기

·2021년 9월 24일
0

이코테_알고리즘

목록 보기
7/23

소스코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;


int main() {
	
	int n;
	cin >> n;

	vector<int>v(n);
	vector<int>dp(n, 1);

	for (int i = 0; i < v.size(); i++)
	{
		cin >> v[i];
	}

	reverse(v.begin(), v.end());

	for (int i = 1; i < v.size(); i++)
	{
		for (int j = 0; j < i; j++)
		{
			if (v[i] > v[j])
			{
				dp[i] = max(dp[i], dp[j] + 1);
			}
		}
	}

	int cnt = 1;
	int result = 0;
	for (int i = 0; i < dp.size(); i++)
	{
		//cout << dp[i] << " ";
		if (cnt == dp[i])
			cnt++;
		else
			result++;
	}

	cout << result;
	return 0;
}
profile
🔥🔥🔥

0개의 댓글