티스토리 뷰

https://www.acmicpc.net/problem/11053

 

11053번: 가장 긴 증가하는 부분 수열

수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이

www.acmicpc.net

const fs = require('fs');
const [n, ...arr] = fs.readFileSync("./dev/stdin").toString().trim().split("\n");


const sequence = arr[0].split(' ').map(v=>+v);


function dpLis(arr){
    let lis = [];
    for(let i = 0; i<arr.length; i++){
        lis[i] = 1;
        for(let j=0; j<i; j++){
            if(arr[j]<arr[i]){
                lis[i] = Math.max(lis[i],lis[j]+1);
            }
        }
    }
    return Math.max(...lis)
}


const answer = dpLis(sequence);

console.log(answer);
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함