본문 바로가기
TIL

2020. 10. 13

by Su1993 2020. 10. 13.
반응형

"토마토" 나 "기러기"처럼 거꾸로 읽어도 똑같은 단어를 "팰린드롬(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)까지만 반복해도 된다.

반응형

댓글