반응형
"토마토" 나 "기러기"처럼 거꾸로 읽어도 똑같은 단어를 "팰린드롬(palindrome)"이라 부른다.
팰린드롬(palindrome)과 아닌 것을 구분하여 true와 false로 출력한다면 다음과 같이 표현할 수 있다.
function palindrome(word) {
for(let i = 0; i < Math.floor(word.length / 2); i++) {
let left = word[i];
let right = word[word.length - 1 - i];
if(left !== right) {
return false;
}
}
return true;
}
console.log(palindrome("기러기"));
console.log(palindrome("토마토"));
console.log(palindrome("hello"));
console.log(palindrome("abccba"));
console.log(palindrome("123321"));
console.log(palindrome("123456"));
문자열 word의 첫 번째 원소의 인덱스는 0, 마지막 원소의 인덱스는 word.length - 1이다. 그리고 두 번째 원소의 인덱스는 1이고, 끝에서 두 번째 원소의 인덱스는 word.length - 2이다.
이런 부분을 이용해 인덱스 i에 있는 값과 인덱스 word.length - 1 - i에 있는 값을 비교하면 된다.
조금 더 간결하게 쓰자면 Math.floor(word.length / 2)까지만 반복해도 된다.
반응형
댓글