본문 바로가기
  • soldonii's devlog
Javascript 공부/알고리즘 풀이

자바스크립트 알고리즘(5) - palindrome

by soldonii 2019. 8. 26.

*Udemy의 "The Coding Interview Bootcamp: Algorithms + Data Structures" 강의에서 학습한 내용을 정리한 포스팅입니다.

*https://soldonii.github.io에서 작성한 글을 티스토리로 옮겨온 포스팅입니다.

*자바스크립트를 배우는 단계라 오류가 있을 수 있습니다. 틀린 내용은 댓글로 말씀해주시면 수정하겠습니다. 감사합니다. :)


지문

// Given a string, return true if the string is a palindrome
// or false if it is not.  Palindromes are strings that
// form the same word if it is reversed. *Do* include spaces
// and punctuation in determining if the string is a palindrome.
// --- Examples:
//   palindrome("abba") === true
//   palindrome("abcdefg") === false

 

1번 풀이 : reverse() 또는 reduce()

1. 문자열을 배열로 변환하고 역순으로 바꿔준다.

2. 원본 vs. 바꾼 문자열 비교하여 같으면 true, 아니면 false.

function palindrome(str) {
  const reversed = str.split('').reverse().join('');
  // 또는 const reversed = str.split('').reduce((rev, char) => char + rev, '');
  return reversed === str ? true : false;
}

 

2번 풀이 : every()

1. 문자열을 배열로 변환한다.

2. every()를 이용하여 현재 문자열과 마지막 문자열이 서로 일치하는지 비교.

*불필요한 비교를 반복하기 때문에 권장되는 풀이법은 아님.

function palindrome(str) {
  return str.split('').every((char, idx) => char === str[str.length - 1 - idx]);
}

댓글