본문 바로가기
IT/BOJ

백준(BOJ) 1965 상자넣기 *

by 빨강자몽 2018. 9. 28.

# LIS

LIS 개념을 알고 푸는것이 좋당.

최장 증가 수열(LIS,Largest Increasing Sequence) 알고리즘


#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#define MAX 100005
#define INF 987654321
#define MOD 31991
#pragma warning(disable:4996)
using namespace std;
typedef long long ll;
typedef pair<int, int> pi;

int n, m, ans = 0;
vector<int> v;
int main()
{
	scanf("%d", &n);
	v.push_back(-INF);
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &m);
		if (v.back() < m)
		{
			v.push_back(m);
			ans++;
		}
		else
		{
			auto it = lower_bound(v.begin(), v.end(), m);
			*it = m;
		}
	}
	printf("%d", ans);
	return 0;
}



'IT > BOJ' 카테고리의 다른 글

백준(BOJ) 1298 노트북 주인을 찾아서 **  (0) 2018.09.30
백준(BOJ) 9240 로버트 후드 ***  (0) 2018.09.28
백준(BOJ) 1275 커피숍2 **  (0) 2018.09.28
백준(BOJ) 2042 구간 합 구하기 **  (0) 2018.09.17
백준(BOJ) 2512 예산 **  (0) 2018.09.14