본문 바로가기
  • KEEP HUSTLE!
파이썬 코테 준비

[백준 11054] 가장 긴 바이토닉 부분 수열 - Python(파이썬)

by 하수군 2021. 3. 4.

바이토닉 수열 : 다음의 규칙을 가진 수열

  • 계속 증가하는.. (1, 2, 3, 4)
  • 계속 감소하는.. (4, 3, 2, 1)
  • 증가 후 감소하는.. (1, 2, 3, 4, 5, 10, 6, 5, 2, 1)
import sys


def solution():
    for i in range(N):
        for j in range(i, N):
            if arr[i] < arr[j] and check2[i] >= check2[j]:
                check2[j] += 1
            if arr[-i - 1] < arr[-j - 1] and check[-i - 1] >= check[-j - 1]:
                check[-j - 1] += 1

    for i in range(N):
        check[i] += check2[i] - 1

    return max(check)


N = int(sys.stdin.readline().strip())
arr = list(map(int, sys.stdin.readline().split()))
check = [1] * N
check2 = [1] * N

print(solution())

댓글