-
DP_백준_가장 긴 감소하는 부분 수열_11722Algorithm 2018. 8. 17. 14:58
이 문제 역시 길이에 대하서 N을 정한다. (단 여기서 의미하는 것은 입력받은 숫자를 마지막으로하는 것)
1. 정의 : dp[N] : value[N]을 마지막으로 하는 가장 긴 증가하는 부분 수열의 길이
2. 점화식 : dp[N] = if(dp[N]<dp[i]) && MAX(dp[i[)+1 (0<=i<N)
3. 초기화 : 코드 참조
1234567891011121314151617181920212223242526272829#include <iostream>using namespace std;int main() {int count;cin >> count;int * value = new int[count];int * dp = new int[count];for (int i = 0; i < count; i++) {cin >> value[i];}dp[0] = 1;int result = 1;//Initializefor (int i = 1; i < count; i++) { // i == dp indexint max = 0;// Big lengthfor (int j = 0; j < i; j++) {if (max < dp[j] && value[i]<value[j]) {max = dp[j];}}dp[i] = max + 1;if (result < dp[i]) {result = dp[i];}}cout << result << endl;}cs 'Algorithm' 카테고리의 다른 글
DP_백준_연속합_1912 (0) 2018.08.17 DP_백준_가장 긴 바이토닉 부분 수열_11054 (0) 2018.08.17 DP_백준_가장 큰 증가하는 부분 수열_11055 (0) 2018.08.17 DP_백준_가장 긴 증가하는 부분 수열_LIS_11053 (0) 2018.08.16 DP_백준_포도주 시식_2156 (0) 2018.08.16