아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

가장 긴 바이토닉 부분 수열

면접 대비

시간 제한1초메모리 제한256 MB

요약
최대 1000개 수열에서 먼저 엄격히 증가하다가 이후 엄격히 감소하는 가장 긴 부분 수열의 길이를 구합니다.
난이도

보통10점 중 5점

유형
동적 계획법
정답자
아직 제출이 없습니다

문제

수열 SS가 어떤 원소 SkS_k를 기준으로 S1<S2<⋯<Sk−1<Sk>Sk+1>⋯>SN−1>SNS_1 < S_2 < \dots < S_{k-1} < S_k > S_{k+1} > \dots > S_{N-1} > S_N을 만족하면 이 수열을 바이토닉 수열이라고 한다. 증가 구간과 감소 구간 중 한쪽이 비어 있어도 되므로, 순증가 수열과 순감소 수열도 바이토닉 수열이다.

예를 들어 {10, 20, 30, 25, 20}, {10, 20, 30, 40}, {50, 40, 25, 10}은 바이토닉 수열이지만, {1, 2, 3, 2, 1, 2, 3, 2, 1}과 {10, 20, 30, 40, 20, 30}은 바이토닉 수열이 아니다.

수열 AA가 주어질 때, AA의 부분 수열 중 바이토닉 수열이면서 길이가 가장 긴 것의 길이를 구하라. 부분 수열은 AA에서 원소를 0개 이상 지우고 남은 원소의 순서를 그대로 둔 수열이다.

입력

첫째 줄에 수열 AA의 크기 NN이 주어진다. 둘째 줄에 수열 AA를 이루는 A1,A2,…,ANA_1, A_2, \dots, A_N이 공백으로 구분되어 주어진다. (1≤N≤10001 \le N \le 1000, 1≤Ai≤10001 \le A_i \le 1000)

출력

첫째 줄에 AA의 부분 수열 중 가장 긴 바이토닉 수열의 길이를 출력한다.

힌트

첫 번째 예제에서는 1, 2, 3, 4, 5, 2, 1이 가장 긴 바이토닉 부분 수열이고, 길이는 7이다.

예제3

  1. 예제 1

    입력
    10
    1 5 2 1 4 3 4 5 2 1
    
    예상 출력
    7
    
  2. 예제 2

    입력
    1
    1000
    
    예상 출력
    1
    
  3. 예제 3

    입력
    5
    1 2 3 4 5
    
    예상 출력
    5