본문 바로가기
알고리즘

백준 가장 긴 증가하는 부분 수열 11053

by kcj3054 2021. 8. 3.

문제 설명 : 주어진 수열 내에서 가장 긴 수열의 길이를 찾는 것이다.

문제내에서 주어진 것의 예시를 보겠습니다.

수열 A = {10, 20, 10, 30, 20, 50} 여기서 10, 20, 30 ,50되니 4이다

문제 풀이 :

여기서 점화식은
dp[idx] -> idx번째 원소의 값이 있는 위치에서 가장긴 수열의 길이이다.

이러한 점화식이 있을때 조건은
범위가 i = 1 ~ i < idx 일경우
i < idx && v[i] < v[idx] -> 가장 긴 부분수열이니 원소의 값도 더 작아야한다

중요 부분 소스

for (int i = 0; i < idx; i++) {
        if (i < idx && v[i] < v[idx]) {
            dp[idx] = max(solve(i) + 1, dp[idx]);
        }

'알고리즘' 카테고리의 다른 글

백준 9251 lcs  (0) 2021.08.09
백준 11066 파일합치기  (0) 2021.08.04
백준 12865 평범한 배낭  (0) 2021.08.03
가장 긴 증가하는 부분 수열4  (0) 2021.07.28
백준22251 빌런 호석  (0) 2021.07.24