문제 링크 : 가장 긴 바이토닉 부분 수열
n = int(input())
case = list(map(int, input().split()))
reverse_case = case[::-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 case[i] > case[j]:
increase[i] = max(increase[i], increase[j]+1)
if reverse_case[i] > reverse_case[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))
증가하는 부분과 감소하는 부분을 각각 계산해서 더해주었다.