๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 12738๋ฒˆ - ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด3

by dkswnkk 2021. 11. 2.
 

12738๋ฒˆ: ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด 3

์ฒซ์งธ ์ค„์— ์ˆ˜์—ด A์˜ ํฌ๊ธฐ N (1 ≤ N ≤ 1,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ˆ˜์—ด A๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๋Š” Ai๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000)

www.acmicpc.net

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int N; cin >> N;
    vector<long long>v;
    v.push_back(-1e9);    //์ž…๋ ฅ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ตœ์†Ÿ๊ฐ’
    for (int i = 0; i < N; i++) {
        long long  number; cin >> number;
        if (v.back() < number) v.push_back(number);
        else {
            auto it = lower_bound(v.begin(), v.end(), number);
            *it = number;
        }
    }
    cout << v.size() - 1;
}

๋Œ“๊ธ€