Algorithm/boj

[파이썬] 11054 가장 긴 바이토닉 부분 수열

takeU 2022. 3. 30. 14:39
반응형
n = int(input())
li = list(map(int, input().split()))
re_li = li[:][::-1]
inc_dp = [1] * n
dec_dp = [1] * n

for i in range(1, n):
    inc_dp[i] = max([0] + [inc_dp[j] for j in range(i) if li[j] < li[i]]) + 1
    dec_dp[i] = max([0] + [dec_dp[j] for j in range(i) if re_li[j] < re_li[i]]) + 1

print(max([inc_dp[i] + dec_dp[::-1][i] for i in range(n)]) - 1)

dp, LIS