본문 바로가기

개발/백준

[백준] 1965번. 상자넣기 (C++)

문제

https://www.acmicpc.net/problem/1965

풀이

[LIS,DP]

코드

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

int main()
{
	//INPUT
	int N; cin >> N;
	vector<int> box(N);
	vector<int>dp(N, 1);
	for(int i=0;i<N;i++)
	{	cin >> box[i];	}

	//CHECK
	for (int i = 0; i < N; i++)
	{
		for (int k = 0; k < i; k++)
		{
			if(box[i]>box[k])dp[i] = max(dp[i], dp[k] + 1);
		}
	}
	//RESULT
	cout << *max_element(dp.begin(), dp.end());
}

 

동일한 문제

https://yun000.tistory.com/164

 

[백준] 11055번. 가장 큰 증가하는 부분 수열 (C++)

문제https://www.acmicpc.net/problem/11055풀이[DP, LIS알고리즘]저번에 푼문제랑 비슷해서 후딱풀었다 숫자들을 차례대로 확인한다지금 확인할 숫자가 n번째 숫자라고 하자0~n-1번째 숫자들 중 n번째 숫자

yun000.tistory.com