Algorithm π§π»π»/λ°±μ€(BOJ)
[λ°±μ€,c++] 11722λ² - κ°μ₯ κΈ΄ κ°μνλ λΆλΆ μμ΄
dkswnkk
2021. 10. 31. 20:03
https://www.acmicpc.net/problem/11722
11722λ²: κ°μ₯ κΈ΄ κ°μνλ λΆλΆ μμ΄
μμ΄ Aκ° μ£Όμ΄μ‘μ λ, κ°μ₯ κΈ΄ κ°μνλ λΆλΆ μμ΄μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€. μλ₯Ό λ€μ΄, μμ΄ A = {10, 30, 10, 20, 20, 10} μΈ κ²½μ°μ κ°μ₯ κΈ΄ κ°μνλ λΆλΆ μμ΄μ A = {10, 30, 10, 20, 20, 10}
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<int>arr(N);
vector<int>dp(1001,1);
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
reverse(arr.begin(), arr.end()); //μμ΄μ μμμΌλ‘ λ°κΎΌλ€.
for (int i = 1; i < N; i++) { //κ°μ₯ κΈ΄ μ¦κ°νλ λΆλΆμμ΄μ ꡬνλ€.
for (int k = 0; k < i; k++) {
if (arr[i] > arr[k]) dp[i] = max(dp[i], dp[k] + 1);
}
}
cout << *max_element(dp.begin(), dp.end());
}