팰린드롬이란 'eye', 'kayak', 'hannah' 처럼 거꾸로 읽어도 똑같은 문장이나 단어를 뜻한다.
지난 면접에서 간단한 알고리즘 문제를 받았는데
문자열을 받아서 팰린드롬이면 true를 반환하고 아니면 false를 반환하는 로직을 작성하는 문제였다.
reverse()
를 사용 불가처음에 바보같이 문자열을 .split()
으로 배열을 만들었는데 그냥 문자열에 반복문을 사용하면 됐었다.😑
내가 생각해도 정말 괴상한 방법으로 풀려고 했는데 쉬운 문제를 너무 어렵게 생각한 듯 싶다.
아래 코드는 다시 직접 작성해본 코드
let textOne = 'korea';
let textTwo = 'kayak';
let textThr = 'hannah';
// 팰론드롬 판펼 함수
function getPalindrome(str){
let half = Math.floor(str.length / 2); // 문자열의 중간까지만 반복될 수 있도록 변수지정
for(let i = 0; i < half; i++){
if(text[i] !== text[text.length-i-1]){
// 앞 문자와 대칭되는 뒷 문자가 서로 일치하지 않는 경우 false 반환
return false;
}
}
return true;
}
getPailindrome(textOne); // false
getPailindrome(textTwo); // true
getPailindrome(textThr); // true