골드3 : 동적 계획법 문제이다.
생각
dp의 정의는 간단하게 생각할 수 있다. 이 문제는 가장 긴 감소하는 부분 수열, 가장 긴 증가하는 부분 수열을 합한 문제이다.
정의
dp1[i]
= i번째 원소를 포함했을 때 발생하는 가장 감소하는 부분 수열의 길이
dp2[i]
= i번째 원소를 포함했을 때 발생하는 가장 증가하는 부분 수열의 길이
점화식
dp1[i] = dp1[j]+1 단, a[i] < a[j]
dp2[i] = dp2[j]+1 단, a[i] > a[j]
ans = max(ans, dp1[i]+dp2[i]-1)
Code
Reference