정수 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.
var isPalindrome = function (x) {
let answer = true;
const revX = Number(("" + x).split("").reverse().join(""));
if (x === revX) {
return answer;
}
return (answer = false);
};
어김없이 리버스를 사용했다 😅
수학적으로 접근하는 다른 방법이 있기에 수학적으로 친해지고자 풀이를 남긴다.
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;
};
숫자가 주어진다면 메서드만 생각하지말고 수학적으로도 생각해 보자.