본문 바로가기

알고리즘/BOJ

[C++] 백준 11722번 - 가장 긴 감소하는 부분 수열


0. 문제

 

https://www.acmicpc.net/problem/11722

 

1. 아이디어

 

1) 앞의 문제들과 동일한 아이디어!

 

2. 소스코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
int main()
{
    int N, length=0,arr[1000], dp[1000];
    std::cin >> N;
    for (int i = 0; i < N; i++)
        std::cin >> arr[i];
    
    for (int i = 0; i < N; i++)
    {
        int max = 0;
        for (int j = 0; j < i; j++)
            if (arr[i] < arr[j]) //자신보다 큰 값일 때
                if (max < dp[j]) max = dp[j];
        dp[i] = max + 1;
 
        if (length < dp[i]) length = dp[i];
    }
    std::cout << length;
}
cs

 

3. 결과

 

 

4. 피드백

 

  • 화이팅!!