[JavaScript] 리트코드 - #5 Longest Palindromic Substring (Medium)

배똥회장·2022년 11월 11일
0

📝 문제

리트코드 - #5 Longest Palindromic Substring (Medium)


📝 답안

📌 작성 코드

var longestPalindrome = function(s) {
    let word = s.split("");
    let check = new Array(word.length);
    let result = "";
    var i, j;
    for (i = 0; i < word.length; i++) {
        check[i] = new Array(word.length);
    }

    for (i = 0; i < word.length; i++) {
        for (j = word.length-1; j >= i; j--) {
            if (result.length >= (j-i+1)) continue;
            if (checkWord(i, j)) {
                result = s.slice(i, j+1);
            }
        }
    }

    return result;

    function checkWord (start, end) {
        if (start > end) return true;
        if (check[start][end] != undefined) {
            return check[start][end];
        }

        if (word[start] !== word[end]) {
            check[start][end] = false;
            return false;
        } else {            
            if (checkWord(start+1, end-1)) {
                check[start][end] = true;
                return true;
            } else {
                check[start][end] = false;
                return false;
            }
        }
    }
};

📌 결과


📌 코드 설명

재귀함수로 구현했음...
시작 위치와 끝 위치의 글자가 동일하면 그 가운데 글자를 확인하는 식으로 구현.
메모리를 많이 차지하는 점이 살짝 걸리긴 하지만 일단 내 머리로 생각할 수 있는 수준은 이정도인듯...

profile
어쩌면 개발자

0개의 댓글