20251003 baekjoon
This commit is contained in:
parent
2b46e3d9a6
commit
d4d8c22ef2
56
code_study/Baekjoon/c/11054.c
Normal file
56
code_study/Baekjoon/c/11054.c
Normal file
@ -0,0 +1,56 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
void freeAll(int* a, int* b, int* c, int* d, int* e) {
|
||||
free(a); free(b); free(c); free(d); free(e);
|
||||
}
|
||||
|
||||
int max(int a, int b) {
|
||||
return a>b ? a : b;
|
||||
}
|
||||
|
||||
int maxInArr(int* arr, int N) {
|
||||
int maxNum = 0;
|
||||
for(int i=0; i<N; i++) maxNum = max(maxNum, arr[i]);
|
||||
|
||||
return maxNum;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int N;
|
||||
scanf("%d",&N);
|
||||
|
||||
int* arr = (int*)malloc(sizeof(int)*N);
|
||||
int* arrR = (int*)malloc(sizeof(int)*N);
|
||||
for(int i=0; i<N; i++) {
|
||||
int num;
|
||||
scanf("%d",&num);
|
||||
arr[i] = num;
|
||||
arrR[N-i-1] = num;
|
||||
}
|
||||
|
||||
int* dp = (int*)malloc(sizeof(int)*N);
|
||||
int* dpR = (int*)malloc(sizeof(int)*N);
|
||||
|
||||
for(int i=0; i<N; i++) {
|
||||
dp[i] = 1;
|
||||
dpR[i] = 1;
|
||||
}
|
||||
|
||||
for(int i=0; i<N; i++) {
|
||||
for(int j=0; j<i; j++) {
|
||||
if(arr[i] > arr[j]) dp[i] = max(dp[i], dp[j]+1);
|
||||
if(arrR[i] > arrR[j]) dpR[i] = max(dpR[i], dpR[j]+1);
|
||||
}
|
||||
}
|
||||
|
||||
int* length = (int*)malloc(sizeof(int)*N);
|
||||
|
||||
for(int i=0; i<N; i++) length[i] = dp[i] + dpR[N-1-i] - 1;
|
||||
|
||||
printf("%d\n", maxInArr(length, N));
|
||||
|
||||
freeAll(arr, arrR, dp, dpR, length);
|
||||
return 0;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user