가장 긴 바이토닉 부분 수열(11504)
가장 긴 바이토닉 부분 수열
Last updated
가장 긴 바이토닉 부분 수열
Last updated
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int arr[] = new int[N];
int UPdp[] = new int[N];
int Ddp[] = new int[N];
for(int i=0; i<N; i++){
arr[i] = sc.nextInt();
}
for(int i=0; i<N; i++){
UPdp[i] = 1;
for (int j = 0; j <i; j++) {
if(UPdp[i]<=UPdp[j] && arr[j]<arr[i]){
UPdp[i] = UPdp[j]+1;
}
}
}
for(int i=N-1; i>=0; i--){
Ddp[i] = 1;
for(int j=N-1; j>i; j--){
if(Ddp[j]>=Ddp[i] && arr[i]>arr[j]){
Ddp[i] = Ddp[j]+1;
}
}
}
int max = 0;
for (int i=0; i<N; i++) {
max = Math.max(max, UPdp[i]+Ddp[i]-1);
}
System.out.println(max);
}
}