[백준/BOJ] 백준 3745번 : 오름세
2021. 9. 4. 03:30ㆍ알고리즘 문제풀이
https://www.acmicpc.net/problem/3745
가장 긴 증가하는 부분 수열 (n log n) 풀이로 가장 긴 오름세를 찾아서 문제를 해결했다.
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int tc;
int n;
vector<int> p;
vector<int> check;
vector<int>::iterator it;
void Pre()
{
p.clear();
check.clear();
}
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
while (cin >> n)
{
Pre();
for (int i = 0; i < n; i++)
{
int input;
cin >> input;
p.push_back(input);
}
for (int i = 0; i < n; i++)
{
it = lower_bound(check.begin(), check.end(), p[i]);
if (it == check.end())
check.push_back(p[i]);
else
(*it) = p[i];
}
cout << check.size() << "\n";
}
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 2325번 : 개코전쟁 (0) | 2021.09.04 |
---|---|
[백준/BOJ] 백준 7469번 : K번째 수 (0) | 2021.09.04 |
[백준/BOJ] 백준 16562번 : 친구비 (0) | 2021.09.04 |
[백준/BOJ] 백준 1649번 : 택시 (0) | 2021.09.04 |
[백준/BOJ] 백준 1777번 : 순열복원 (0) | 2021.09.04 |