만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

가장 긴 감소하는 부분 수열

면접 대비

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

요약
주어진 수열에서 순서를 유지하며 엄격히 감소하는 가장 긴 부분 수열의 길이를 구합니다.
난이도

쉬움10점 중 3점

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

문제

수열 AA가 주어진다. AA의 가장 긴 감소하는 부분 수열의 길이를 구하는 프로그램을 작성하시오.

부분 수열은 AA에서 원소를 하나 이상 골라 원래 순서를 그대로 유지한 수열이다. 감소하는 부분 수열은 앞의 원소가 바로 뒤의 원소보다 항상 큰 부분 수열이다.

예를 들어 A={10,30,10,20,20,10}A = \{10, 30, 10, 20, 20, 10\}이면 가장 긴 감소하는 부분 수열은 {30,20,10}\{30, 20, 10\}이고, 길이는 3이다.

입력

첫째 줄에 수열 AA의 크기 NN이 주어진다. (1≤N≤1,0001 \le N \le 1{,}000)

둘째 줄에 수열 AA를 이루는 A1,A2,…,ANA_1, A_2, \dots, A_N이 공백으로 구분되어 주어진다. (1≤Ai≤1,0001 \le A_i \le 1{,}000)

출력

첫째 줄에 AA의 가장 긴 감소하는 부분 수열의 길이를 출력한다.

예제5

  1. 예제 1

    입력
    6
    10 30 10 20 20 10
    
    예상 출력
    3
    
  2. 예제 2

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

    입력
    5
    7 7 7 7 7
    
    예상 출력
    1
    
  4. 예제 4

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

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