국정원 소프트웨어 SW 공채 역량평가 샘플 예제
(여기 참조)
(여기 참조)
주어진 배열의 LIS의 길이가 $K$ 이상이면 1, 아니면 0을 출력하면 된다.
$N$의 범위로 보아 시간복잡도가 적당한 LIS를 사용한다. 길이만 알면 되서 $O(NlogN)$으로 작성했다.
int answer = 0;
for(i=0; i<n; ++i){
for(j=i; j>=0; --j){
if(a[j] < a[i]){
LIS[i] = max(LIS[i], LIS[j]+1);
}
}
answer = max(LIS[i], answer);
}
printf("%d", answer+1);