Palindrome Number

Hyor·2022년 3월 14일
0
post-custom-banner

요즘 알고리즘 공부를 시작해서 easy 단계부터 차근차근 풀고 있다.
palindrome number 는 임의의 수를 대칭인지 확인하는 문제이다.

예를들어 12321 은 대칭이고 1231 은 비대칭임으로 전자는 true, 후자는 false 를 반환한다.

처음 문제를 접하였을때 for문의 index로 해당요소 반대편 요소를 접근하여 풀었다.

var isPalindrome = function (x) {
  let result = true;
  const str = String(x);
  const strLength = str.length;

  for (let i = 0; i < strLength / 2; i++) {
    if (str[i] !== str[strLength - 1 - i]) {
      return result = false;
    }
  }

  return result;
};

채점 후 통화하고나서 점심을 먹으며 직장동료와 얘기중 나는 이런방식으로 접근했다고하니
String 변환 후 뒤집어서 비교를 하면 되는거 아니냐는 동료 얘기에 다시 한번 풀어보았다.

var isPalindrome = function(x) {
  const str = String(x);
  const reverseStr = str.split("").reverse().join("");
  return str === reverseStr;
};

훨씬 코드가 간결해졌다. Runtime 에서 큰 차이를 느끼지 못하였다.
내가 작성한 코드와 다른사람은 어떤 방식으로 접근하는지 비교하는것이 많이 공부가 된다는걸 깨달았다.

profile
개발 노트
post-custom-banner

0개의 댓글