알고리즘 풀이

[JAVASCRIPT] 백준 1254번 문제 풀이

Lv1_junior_dev 2023. 5. 28. 17:19

❗ 풀이

const input = require('fs').readFileSync('dev/stdin').toString().trim();

let reverseInput = input.split("").reverse().join("");

if (reverseInput == input) {
    console.log(reverseInput.length);
    return;
}

for (let i = 1; i < input.length; i++) {
    let arr = input.split("").slice(i).join("");
    const reverseArray = input.split("").slice(i).reverse().join("");
    if (arr === reverseArray) {
        console.log(input.length + i)
        break;
    }
}
  1. 입력 문자열을 split한 후 뒤집고 다시 문자열로 만들어 정의
  2. 앞서 reverse한 입력이 원래 입력과 같은지 확인하여, 같으면 입력이 이미 팰린드롬임을 의미하여 종료
  3. 팰린드롬이면 입력된 길이를 출력하고 종료
  4. 입력이 팰린드롬이 아닌 경우 인덱스 1부터 시작하여 입력을 반복
    • 인덱스 i의 입력을 끝까지 슬라이스하고 문자를 결합하여 arr 배열을 만듬
    • 새로 만든 배열을 reverse한 reverseArray 배열을 만듬
    • reverse와 reverseArray가 같은지 확인
    • 같으면 입력값의 길이와 i의 합을 출력하고 종료