백준 11054 - 가장 긴 바이토닉 부분 수열 (파이썬)
Updated:
Answer
n = int(input())
l1 = list(map(int, input().split()))
l2 = l1[::-1]
dp1 = [1] * n
dp2 = [1] * n
for i in range(n):
for j in range(i):
if l1[i] > l1[j]:
dp1[i] = max(dp1[i], dp1[j] + 1)
if l2[i] > l2[j]:
dp2[i] = max(dp2[i], dp2[j] + 1)
for i in range(n):
dp1[i] = dp1[i] + dp2[n-1-i] - 1
print(max(dp1))