배열에 크기값(first)과 count를 각각 입력해 주고
탐색때마다 count 값을 올려가는 식으로 재귀함수가 작동하구요
웬만한 테스트케이스는 다 생각해서 해봤는데..
도저히..... 코드가 어디서 오류를 내는지.. 모르겠습니다..
코드만 올려놓고 질문해서 죄송합니다..ㅠ
#include <iostream>usingnamespacestd;structlis{intfirst;intcount;};intmaxsize=0,n;structlis*list;voidLIS(intindex,intsize){inti;if(size>maxsize)maxsize=size;for(i=1;i<=n-index;i++){// index+1 ~ n 까지 모두 checkif(list[index].first<list[index+i].first&&list[index+i].count<size+1){// index의 first값과 index+i의 first 값을 비교list[index+i].count=size+1;LIS(index+i,++size);size--;}}}intmain(){intt;cin>>t;while(t-->0){inti;cin>>n;list=newstructlis[n+1];for(i=0;i<n;i++){cin>>list[i].first;// fisrt에는 입력된 값list[i].count=1;}for(i=0;i<n;i++)if(n-i>maxsize)LIS(i,1);cout<<maxsize<<endl;maxsize=0;delete[]list;}}
int_solution
배열에 크기값(first)과 count를 각각 입력해 주고
탐색때마다 count 값을 올려가는 식으로 재귀함수가 작동하구요
웬만한 테스트케이스는 다 생각해서 해봤는데..
도저히..... 코드가 어디서 오류를 내는지.. 모르겠습니다..
코드만 올려놓고 질문해서 죄송합니다..ㅠ
9년 전