새소식

코딩테스트/백준_골드

[C++][백준 12738] 가장 긴 증가하는 부분 수열 3

  • -

[문제]

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

 

12738번: 가장 긴 증가하는 부분 수열 3

첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000)

www.acmicpc.net

[문제 풀이]

가장 긴 증가하는 부분 수열2 와 동일하게 생각하면 된다.

 

[코드]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<vector>
#include<algorithm>
#define endl "\n"
 
using namespace std;
 
int main(){
    int n;
    cin>>n;
    vector<int> sequence;
    for(int i = 0;i<n;i++){
        int temp;
        cin>>temp;
        if(sequence.size() == 0 or sequence.back()<temp){
            sequence.push_back(temp);
        }
        else{
            *lower_bound(sequence.begin(),sequence.end(),temp) = temp;
        }
    }
    cout<<sequence.size()<<endl;
    return 0;
}
cs

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.