문제풀이/백준(Boj) 문제풀이
[백준][동적 계획법1] 11054. 가장 긴 바이토닉 부분 수열 (파이썬/Python)
얄루몬
2021. 9. 17. 13:48
import sys
input = sys.stdin.readline
n = int(input())
lst = list(map(int,input().split()))
r_lst = lst[::-1] #감소하는 부분 수열을 구하기 위함 뒤집어 저장
increase = [1 for i in range(n)]
decrease = [1 for i in range(n)]
for i in range(n):
for j in range(i):
if lst[i] > lst[j]:
increase[i] = max(increase[i],increase[j]+1)
if r_lst[i] > r_lst[j]:
decrease[i] = max(decrease[i],decrease[j]+1)
result = [0 for i in range(n)]
for i in range(n):
result[i] = increase[i] + decrease[n-i-1] - 1
print(max(result))