프로그래머스 | 가장 긴 팰린드롬

커몽·2021년 2월 1일
0

프로그래머스 level3

목록 보기
2/17
function solution(s)
{
    var answer = 1;
    let arr=s.split('');
    let dp=new Array(s.length).fill().map(e=>new Array(s.length).fill(0))
    console.log(dp)
    for(let i=0;i<s.length;i++){
        dp[i][i]=1
    }
    for(let i=0;i<s.length-1;i++){
        if(arr[i]===arr[i+1]){
            dp[i][i+1]=1;
            answer=2
        }
    }
    for(let n=3;n<=s.length;n++){//길이에 대한 루프
        for(let j=0; j<=s.length-n;j++){//첫번째 위치
            let i=n+j-1//대응되는 두번째 위치
            if(arr[j]===arr[i]&&dp[j+1][i-1]===1){//arr[0]과 arr[7]같고 dp[1][6]이 참일 때 (참이라면 arr[1]===arr[6]이라는 뜻)
                dp[j][i]=1;
                answer=Math.max(answer,n)
            }
        }
    }

    return answer;
}

0개의 댓글