[LeetCode] 7. Reverse Integer

#7. Reverse Integer

문제

32비트 숫자를 입력받고 숫자를 뒤집에서 반환한다. 음수이면 -를 붙혀서 반환한다.

설명

우선, 제가 생각한 방법은 입력받은 숫자를 양수/음수 구분없게 절대값으로 만들고, 숫자를 뒤집고, 입력받은 숫자였으면 -를 붙혀서 반환하는 방법을 생각했다. Math.abs() 를 이용해서 절대값을 만들고, toString() 을 이용해서 숫자를 문자로 바꾼다음,

split() 으로 문자를 쪼개서 배열로 만들고, reverse() 를 이용해서 배열의 순서를 뒤집고, join() 을 이용해서 배열을 문자열로 만들고 Math.sign() 을 이용해서 x의 부호를 가져와 숫자의 부호를 넣어준다.

1
2
3
4
5
var reverse = function(x) {
    const num = Math.abs(x).toString().split('').reverse().join('') * Math.sign(x);
    if (num >= 2147483647 || num <= -2147483647 ) return 0;
    return num;
};

LeetCode

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

Example 1:

1
2
Input: x = 123
Output: 321

Example 2:

1
2
Input: x = -123
Output: -321

Example 3:

1
2
Input: x = 120
Output: 21

Example 4:

1
2
Input: x = 0
Output: 0

Constraints: -231 <= x <= 231 - 1

Built with Hugo
Theme Stack designed by Jimmy