반응형
리뷰
LIS는 꼭 풀어봤으면 좋겠다. 난이도에 비해 코드길이가 정말 짧다! 꿀통 알고리즘
https://www.acmicpc.net/problem/2352
문제 풀이
- 포트의 개수 n개를 입력 받고 LIS를 저장할 정수형 벡터 ans를 초기화 해준다.
- n개의 입력을 받고, 입력 받은 포트 번호가 기존의 포트보다 크다면 ans에 push 해준다.
- 만약 기존의 포트보다 작거나 같으면 해당 포트의 위치를 찾아 교체해 주면 된다.
- 반복이 종료된 후 ans의 size를 출력해 주면 된다.
참고 사항
lower_bound를 사용하려면 algorithm을 include 해주어야 한다.
정답 코드
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n; cin >> n;
vector<int> ans;
while (n--) {
int port; cin >> port;
auto it = lower_bound(ans.begin(), ans.end(), port);
if (it == ans.end()) ans.push_back(port);
else *it = port;
}
cout << ans.size();
}
728x90
반응형
'알고리즘 공부 > C++' 카테고리의 다른 글
[P4] 백준 3176번 도로 네트워크 C++ LCA, 트리, 최소 공통 조상 (0) | 2024.09.14 |
---|---|
[G2] 백준 1766번 문제집 C++ 위상 정렬, 우선순위 큐 (0) | 2024.09.14 |
[G3] 백준 1516번 게임 개발 C++ 위상 정렬 (0) | 2024.09.12 |
[P5] 백준 1948번 임계경로 C++ 위상 정렬 (0) | 2024.09.11 |
[G3] 백준 1005번 ACM Craft C++ 위상 정렬 (0) | 2024.09.11 |