References

아래 링크의 강의 중 Section 4. Palindromes의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy


Solution 1. my solution

function palindrome(str) {
  const reversed = str.split("").reduce((rev, char) => char + rev, "");
  if (reversed !== str) {
    return false;
  }
  return true;
}
console.log(palindrome("abba"));
  1. reversed라는 변수에 reduce() 활용하여 문자열 str를 역순 정렬한 다음 배열로 저장.
  2. if문을 통해 reversedstr가 일치하는지 여부를 판별하는 식 작성. 일치하지 않으면 false, 일치하면 ture 반환.

reduce()_MDN_Link


Solution 2. return boolean directly

function palindrome(str) {
  const reversed = str.split("").reverse().join("");

  return str === reversed;
}
console.log(palindrome("abba"));
  1. reversed라는 변수에 reverse()join()을 활용하여 문자열 str를 역순 정렬한 다음 배열로 저장.
  2. reversedstr가 일치하면 true, 일치하지 않으면 false 반환.

Solution 3. with every()

function palindrome(str) {
  return str.split("").every((char, i) => char === str[str.length - i - 1]);
}
console.log(palindrome("abba"));
  1. split으로 문자열 str 배열화.
  2. every()method를 통해 대칭된 위치에 놓인 값의 일치 여부 확인하여 모든 값들이 대칭이라면 true, 아니라면 false를 반환.


every()

every()_MDN_Link

array.every((element, index, array) => {});

array 내 모든 값을 array[0]부터 하나하나 탐색하여 function에서 주어진 조건에 만족하는지 여부를 boolean값으로 반환.

every()는 총 3가지 argument를 받는다.

  1. element: 현재 array 내에서 탐색 중인 값.
  2. index(Optional): array 내에서 탐색 중인 elementindex
  3. array(Optional): every()를 호출한 배열.


함께 보기

문자열 뒤집기(String Reversal)

profile
front-end 분야를 중점으로 공부 중!🐣

0개의 댓글