[BOJ 3745] 오름세
2024. 12. 19. 19:17ㆍBaekjoon
728x90
- 문제 요약
주식투자를 좋아하는 정인이는 주가의 오름세를 살펴보려고 한다.
정인이는 n일 동안 매일 주가를 적어놓았고, 여기서 오름세를 찾아보려고 한다.
n일 동안의 주가를 p1, p2, ..., pn이라고 했을 때, 오름세란 부분수열 pi1 < pi2 < ... < pik (i1 < i2 < ... ik)을 말한다.
n일 동안 주가가 주어졌을 때, 가장 긴 오름세를 찾는 프로그램을 작성하시오.
- 알고리즘 정리
평범한 LIS 문제입니다.
테스트 케이스를 반복하며 구해주면 됩니다.
- 코드 작성
#include<bits/stdc++.h>
using namespace std;
int n;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
while(cin>>n){
vector<int>v;
while(n--){
int a;
cin>>a;
int w=lower_bound(v.begin(),v.end(),a)-v.begin();
if(w==v.size()){
v.push_back(a);
}
else if(v[w]>a){
v[w]=a;
}
}
cout<<v.size()<<"\n";
}
}
728x90
'Baekjoon' 카테고리의 다른 글
[BOJ 2473] 세 용액 (0) | 2024.12.16 |
---|---|
[BOJ 1577] 도로의 개수 (0) | 2024.12.11 |
[BOJ 8980] 택배 (0) | 2024.12.06 |
[BOJ 1947] 선물 전달 (0) | 2024.12.05 |
[BOJ 4811] 알약 (0) | 2024.12.05 |