발행일

[ZBF] 6월 7일차 코딩 테스트 : 팰린드롬(palindrome) / 회문

[ZBF] 6월 7일차 코딩 테스트 : 팰린드롬(palindrome) / 회문

이 글은 네이버 블로그에 2024년 6월 7일에 올렸던 것을 그대로 옮겨온 것입니다.

팰린드롬(palindrome)은 앞에서부터 읽으나 뒤에서부터 읽으나 같은 문자열을 말합니다. 예를 들어, "level", "radar", "racecar" 등이 있습니다. 팰린드롬을 판별하는 알고리즘은 문자열 처리와 관련된 다양한 문제를 해결하는 데 유용합니다.

양 끝에서 중앙으로 이동하면서 문자가 같은지 확인하는 방식입니다.

팰린드롬 판별 문제

function isPalindrome(str) {
// 문자열의 양 끝 인덱스를 초기화
let left = 0;
let right = str.length - 1;

// 양 끝에서 중앙으로 이동하며 문자를 비교
while (left < right) {
if (str[left] !== str[right]) {
return false; // 문자가 다르면 팰린드롬이 아님
}
left++;
right--;
}

return true; // 모든 문자가 같다면 팰린드롬
}

최적화된 팰린드롬 판별 문제

function isPalindromeOptimized(str) {
// 문자열을 소문자로 변환하고 공백을 제거
str = str.toLowerCase().replace(/\s+/g, '');

let left = 0;
let right = str.length - 1;

while (left < right) {
if (str[left] !== str[right]) {
return false;
}
left++;
right--;
}

return true;
}

https://school.programmers.co.kr/learn/courses/30/lessons/12904

  • 코딩테스트 연습 - 가장 긴 팰린드롬 — 문제 설명 앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들면, 문자열 s가 "abcdcba"이면 7을 return하고 "abacde"이면 3을 return합니다. 제한사항 문자열 s의 길이 : 2,500 이하의 자연수 문자열 s는 알파벳 소문자로만 구성 입출력 예 s answer "abcdcba" 7 "abacde" 3 입출력 예 설명 입출력 예 #1 ...