PS

BOJ 11053 - 가장 긴 증가하는 부분 수열

728x90

www.acmicpc.net/problem/11053

 

11053번: 가장 긴 증가하는 부분 수열

수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이

www.acmicpc.net

BOJ 11722 - 가장 긴 감소하는 부분 수열  (sdy-study.tistory.com/160)

과 똑같은 문제다

 

감소하는것 대신 증가하는것 찾으면 되니

부등호만 바꾸면 된다.

 

 

- c++

#include <iostream>
 
#define MAX 1001
 
using namespace std;
 
int N, answer;
int arr[MAX], dp[MAX];
 
int main() {
    cin.tie(0); ios_base::sync_with_stdio(0);
    
    cin >> N;
    for (int i = 0; i < N; ++i) cin >> arr[i];
    
    for (int i = 0; i < N; ++i) {
        dp[i] = 1;
        for (int j = 0; j <= i; ++j) {
            if (arr[i] > arr[j] && dp[j] + 1 > dp[i]) {
                dp[i] = dp[j] + 1;
            }
        }
    }
    
    for (int i = 0; i < N; ++i)
        if (answer < dp[i])
            answer = dp[i];
            
    cout << answer;
    
    return 0;
}
cs

 

 

728x90

'PS' 카테고리의 다른 글

BOJ 1761 - 정점들의 거리  (0) 2021.01.11
BOJ 2170 - 선긋기  (0) 2021.01.05
BOJ 11722 - 가장 긴 감소하는 부분 수열  (0) 2020.12.29
BOJ 17144 - 미세먼지 안녕  (0) 2020.12.27
BOJ 16235 - 나무 재테크  (0) 2020.12.21