[백준]11054번 가장 긴 바이토닉 부분수열 - python파이썬
·
코딩테스트/백준
문제 이 문제를 보고 처음 생각이 든 알고리즘은 LIS이다.그러나 문제는 최장 증가 부분수열이 아니라 바이토닉수열로 어떤 수를 기준으로 오른쪽 부분은 감소하는 부분수열도 찾아주어야한다. 그래서 생각한 방법은 최장증가 부분수열을 구하고 최장감소 부분수열을 구해서 이 둘의 합이 최대가 되는 지점을 찾아주는 것이다. 정답코드n = int(input())a = list(map(int,input().split()))ans = 0dp1 = [0] * ndp2 = [0] * n#최장 증가 부분수열for i in range(n): dp1[i] = 1 for j in range(i): if a[i] > a[j]: dp1[i] = max(dp1[i],dp1[j]+1)#최..