function solution(arr){
let answer =0;
let dy= Array.from({length:arr.length}, ()=> 0);
dy[0]=1;
for(let i=1; i<arr.length; i++){
let max =0;
for(let j=i-1; j>=0; j--){
if(arr[j]<arr[i] && dy[j]>max){
max = dy[j]
}
}
dy[i]= max+1;
answer = Math.max(answer, dy[i]);
}
return answer;
}
let arr=[5, 3, 7, 8, 6, 2, 9, 4];
console.log(solution(arr));
max = 0 으로 초기화해 주는 이유
위와같이 max를 0으로 초기화 해주지 않으면 max = 3이된다.
그러므로 arr[i] = 4 이고 이것보다 작은수인 arr[j]의 dy[j] = 1이므로 max > dy[j]가 된다.
그래서 dy[i]의 값을 구할 수 없게 된다.