(1).백준 12738번 가장 긴 증가하는 부분 수열 3는 음수가 들어갈 뿐 2번과 동일한 문제였고

테스트케이스들을 수정해봤지만 이전과 동일한 방식으로 당연히 처리가 잘 되는 것이 확인되었고

동일하게 들어오는 값의 올바른 순서에 최소값을 집어넣어주고

그 다음 값들을 순차적으로 추가해서 최대 길이를 출력하는 방식으로 해결했다.

const input = `8
10 30 -40 20 -25 -30 35 40`.split('\n')[1].split(' ').map(Number)

const arr = []

for(let i = 0 ; i < input.length ; i++){
    let low = 0
    let high = arr.length

    while(low < high){
        let mid = Math.floor((low + high)/2)
        if(arr[mid] < input[i]){
            low = mid + 1
        } 
        else{
            high = mid
        }
    }

    if(low < arr.length){
        arr[low] = input[i]
    }
    else{
        arr.push(input[i])
    }
}

console.log(arr.length)

'회고' 카테고리의 다른 글

[개발일지] - 469  (0) 2024.10.14
[개발일지] - 468(주말)  (0) 2024.10.13
[개발일지] - 466(연차)  (0) 2024.10.11
[개발일지] - 465(연차)  (1) 2024.10.10
[개발일지] - 464(개천절)  (5) 2024.10.09

+ Recent posts