가오리의 코딩일기
[11054] 가장 긴 바이토닉 부분 수열 본문
n = int(input())
data = list(map(int, input().split()))
reverse_data = data[::-1]
up = [1 for i in range(n)]
down = [1 for i in range(n)]
for i in range(n):
for j in range(i):
if data[i] > data[j]:
up[i] = max(up[i], up[j]+1)
if reverse_data[i] > reverse_data[j]:
down[i] = max(down[i], down[j]+1)
result = [0 for i in range(n)]
for i in range(n):
result[i] = up[i] + down[n-i-1] - 1
print(max(result))
'Python > 백준' 카테고리의 다른 글
[2579] 계단 오르기 (0) | 2022.05.25 |
---|---|
[1912] 연속 합 (0) | 2022.05.25 |
[11722] 가장 긴 감소하는 부분 수열 (0) | 2022.05.25 |
[11055] 가장 큰 바이토닉 부분 수열 (0) | 2022.05.24 |
[11053] 가장 긴 증가하는 부분 수열 (0) | 2022.05.24 |