z BOJ 12015. 가장 긴 증가하는 부분 수열 2 :: C++, 그래픽 기술 블로그

BOJ 12015. 가장 긴 증가하는 부분 수열 2

랭크 : 골드2

문제 풀이

최장 증가 부분 수열(LIS) 알고리즘으로 간단하게 해결 가능합니다.

#include <bits/stdc++.h>
#define fastio cin.tie(0)->sync_with_stdio(0)

using namespace std;

int main() {
    fastio;
    int N, tmp;
    cin >> N;
    vector<int> line;
    for (int i=0; i < N; i++) {
        cin >> tmp;
        auto iter = lower_bound(line.begin(), line.end(), tmp);
        if (iter == line.end()) line.push_back(tmp);
        else *iter = tmp;
    }
    cout << line.size() << endl;
}

알고리즘 시간복잡도 공간복잡도
LIS $O(N logN)$ $O(N)$



'알고리즘 > 백준' 카테고리의 다른 글

BOJ 2239. 스도쿠  (0) 2022.07.11
BOJ 9252. LCS 2  (0) 2022.07.11
BOJ 12852. 1로 만들기 2  (0) 2022.07.10
BOJ 2166. 다각형의 면적  (0) 2022.07.10
BOJ 2568. 전깃줄 - 2  (0) 2022.07.10

+ Recent posts