🕵️♀️ 팰린드롬 / 회문(Palindrome)이란?
앞에서부터 읽으나 뒤에서부터 읽으나 동일한 단어다.
예를 들어, eye, level, madam이 팰린드롬이라고 할 수 있다.
const str1 = 'madam'; function checkPalindrome(str) { let reversed = ''; for (let i = str.length - 1; i >= 0; i--) { reversed += str[i]; } return str === reversed; } console.log(checkPalindrome(str1));
checkPalindrome 안에 reversed라는 문자열을 담는 변수를 선어하고 기존 문자열 마지막 인덱스부터 하나씩 reversed라는 변수에 문자를 저장해 마지막에 두 문자열을 비교하면 판별이 가능하다.
const str1 = 'madam'; const str2 = 'abba'; const str3 = 'dfdd'; function checkPalindrome(str) { const leng = str.length; const middle = Math.floor(str.length / 2); for (let i = 0; i < middle; i++) { if (str[i] !== str[leng - 1 - i]) { return false; } } return true; } console.log(checkPalindrome(str1));
1. 문자열 변수 활용
방법은 문자열 처음부터 끝까지 반복문이 완료되어야 결과를 알 수 있었다. 하지만 투 포인터 방법은 문자열을 반으로 나눠
맨 앞과 맨 뒤를 비교한다. 이 때, 중간에 틀린 부분이 있다면 false를 반환하고 함수가 종료되기 때문에 효율적인 방법이라고 할 수 있을 것 같다.