https://www.acmicpc.net/problem/2491
λ¬Έμ
0μμλΆν° 9κΉμ§μ μ«μλ‘ μ΄λ£¨μ΄μ§ Nκ°μ μ«μκ° λμ΄λ μμ΄μ΄ μλ€. κ·Έ μμ΄ μμμ μ°μν΄μ 컀μ§κ±°λ(κ°μ κ² ν¬ν¨), νΉμ μ°μν΄μ μμμ§λ(κ°μ κ² ν¬ν¨) μμ΄ μ€ κ°μ₯ κΈΈμ΄κ° κΈ΄ κ²μ μ°Ύμλ΄μ΄ κ·Έ κΈΈμ΄λ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νλΌ.
μλ₯Ό λ€μ΄ μμ΄ 1, 2, 2, 4, 4, 5, 7, 7, 2 μ κ²½μ°μλ 1 ≤ 2 ≤ 2 ≤ 4 ≤ 4 ≤ 5 ≤ 7 ≤ 7 μ΄ κ°μ₯ κΈ΄ ꡬκ°μ΄ λλ―λ‘ κ·Έ κΈΈμ΄ 8μ μΆλ ₯νλ€. μμ΄ 4, 1, 3, 3, 2, 2, 9, 2, 3 μ κ²½μ°μλ 3 ≥ 3 ≥ 2 ≥ 2 κ° κ°μ₯ κΈ΄ ꡬκ°μ΄ λλ―λ‘ κ·Έ κΈΈμ΄ 4λ₯Ό μΆλ ₯νλ€. λ 1, 5, 3, 6, 4, 7, 1, 3, 2, 9, 5 μ κ²½μ°μλ μ°μν΄μ 컀μ§κ±°λ μμμ§λ μμ΄μ κΈΈμ΄κ° 3 μ΄μμΈ κ²½μ°κ° μμΌλ―λ‘ 2λ₯Ό μΆλ ₯νμ¬μΌ νλ€.
μ λ ₯
첫째 μ€μλ μμ΄μ κΈΈμ΄ Nμ΄ μ£Όμ΄μ§κ³ , λμ§Έ μ€μλ Nκ°μ μ«μκ° λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. Nμ 1 μ΄μ 100,000 μ΄νμ μ μμ΄λ€.
μΆλ ₯
첫째 μ€μ κ°μ₯ κΈ΄ κΈΈμ΄λ₯Ό μΆλ ₯νλ€.
νμ΄
λμ κ³νλ²μ μ΄μ©νλ€.
dp1[i] : iλ²μ§Έ μ«μκΉμ§ μ°μμ μΌλ‘ κ°κ±°λ μ¦κ°νλ κ°―μ
dp2[i] : iλ²μ§Έ μ«μκΉμ§ μ°μμ μΌλ‘ κ°κ±°λ κ°μνλ κ°―μ
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
// μ
λ ₯
int n;
cin >> n;
vector<int> v(n);
for(int i=0; i<n; i++)
cin >> v[i];
// λμ κ³νλ²
vector<int> dp1(n);
vector<int> dp2(n);
dp1[0] = dp2[0] = 1;
for(int i=1; i<n; i++) {
if(v[i-1] <= v[i]) dp1[i] = dp1[i-1]+1;
else dp1[i] = 1;
if(v[i-1] >= v[i]) dp2[i] = dp2[i-1]+1;
else dp2[i] = 1;
}
// μΆλ ₯
cout << max(*max_element(dp1.begin(), dp1.end()), *max_element(dp2.begin(), dp2.end()));
return 0;
}
'ποΈ ICPC Sinchon > Dynamic Programming' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ][C++] λ°±μ€ 10844λ²: μ¬μ΄ κ³λ¨ μ (0) | 2023.11.08 |
---|---|
[BOJ][C++] λ°±μ€ 1912λ²: μ°μν© (0) | 2023.11.03 |
[BOJ][C++] λ°±μ€ 9625λ²: BABBA (0) | 2023.04.13 |
[BOJ][C++] λ°±μ€ 1463λ²: 1λ‘ λ§λ€κΈ° (0) | 2023.01.30 |
[BOJ][C++] λ°±μ€ 1149λ²: RGB거리 (0) | 2023.01.30 |