728x90
반응형
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
![](https://blog.kakaocdn.net/dn/c08fLl/btrUAc5Rtl5/CarbLNJi1AbAS29M2OLef1/img.png)
![](https://blog.kakaocdn.net/dn/bVdV1q/btrUuqEpaLg/norwGOPNKEjWFDnbXo1eM1/img.jpg)
for문을 반대로 쓰는게 살짝 헷갈렸는데 가장 긴 증가하는 부분수열이랑 똑같이 풀어주면 된다
#include <bits/stdc++.h>
using namespace std;
int n;
int dp[1001] = {0}, a[1001] ={0};
int main(void) {
cin >> n;
for(int i=1; i<=n; i++){
cin >> a[i];
dp[i] = 1;
}
for(int i=n-1; i>=1; i--){
for(int j=n;j>i;j--){
if(a[i]>a[j])
dp[i] = max(dp[i], dp[j]+1);
}
}
int result = 0;
for(int i=1; i<=n; i++)
result = max(result, dp[i]);
cout << result << endl;
return 0;
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[백준/DP/C++] 1912번 연속합 (0) | 2022.12.25 |
---|---|
[백준/DP/C++] 11054번 가장 긴 바이토닉 부분 수열 (0) | 2022.12.25 |
[백준/DP/C++] 2156번 포도주 시식 (0) | 2022.12.24 |
[백준/DP/C++] 10844번 쉬운 계단 수 (0) | 2022.12.24 |
[백준/DP/C++] 9095번 1,2,3 더하기 (0) | 2022.12.23 |