[백준] 10942번 - 팰린드롬? Javascript(NodeJs)

JeongYong·2022년 10월 13일
0

Algorithm

목록 보기
16/263

문제 링크

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

풀이

알고리즘: 다이나믹 프로그래밍

소스코드

const fs = require('fs');
let inputData = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
let N = inputData.shift() * 1;
let SN = inputData.shift().split(' ').map(x=>x*1);
let M = inputData.shift() * 1;
let dp = new Array(N + 1);
for(let i=1; i<=N; i++) {
    dp[i] = new Array(N+1);
}
dp[1][1] = 1;
for( let i=2; i<=N; i++) {
    for(let j=1; j<=i-1; j++) {
        if(j+1 < i-1) {
            if(SN[i-1] === SN[j-1]) {
                if(dp[j+1][i-1] === 1) {
                    dp[j][i] = 1;
                } 
            } 
        } else {
            if(SN[i-1] === SN[j-1]) {
                dp[j][i] = 1;
            } 
        }
    }
    dp[i][i] = 1;
}
let output = '';
for(let i=0; i<M; i++) {
    let [a, b] = inputData[i].split(' ');
    if(dp[a][b] === 1) {
        output += '1\n';
    } else {
        output += '0\n';
    }
}
console.log(output.trim());

0개의 댓글