[leetcode] JS - Palindrome Number

sarang_daddy·2023년 1월 18일
0

문제

정수 x가 주어진다. 팬린드롬인지 판단하라.
LeetCode - Palindrome Number

Ex)
Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.

Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

풀이 1

var isPalindrome = function (x) {
  let answer = true;
  const revX = Number(("" + x).split("").reverse().join(""));
  if (x === revX) {
    return answer;
  }
  return (answer = false);
};

어김없이 리버스를 사용했다 😅
수학적으로 접근하는 다른 방법이 있기에 수학적으로 친해지고자 풀이를 남긴다.

풀이 2

var isPalindrome = function (x) {
  let revX = 0;
  const check = x;

  while (x > 0) {
    let rest = x % 10;
    revX = revX * 10 + rest; // 왜 나는 이걸 생각을 못할까..
    x = Math.floor(x / 10);
  }

  return revX === check;
};

숫자가 주어진다면 메서드만 생각하지말고 수학적으로도 생각해 보자.

알아가는 지식 🧐

  • Math.floor(x / 10) -> ~~(x / 10)
profile
한 발자국, 한 걸음 느리더라도 하루하루 발전하는 삶을 살자.

0개의 댓글