LeetCode - reverse integer

katanazero·2020년 5월 26일
0

leetcode

목록 보기
2/13
post-thumbnail

reverse integer

  • Difficulty : easy

Given a 32-bit signed integer, reverse digits of an integer.

  • 32 비트 부호있는 정수 값이 주어지면, 정수를 뒤집어라

Example 1:
Input: 123
Output: 321

Example 2:
Input: -123
Output: -321

Example 3:
Input: 120
Output: 21

Note
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−2^31, 2^31 − 1].
For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

  • 이 문제에서 주의점은 32비트 정수라는 점이다.
  • 2^32 = 4,294,967,296 가지 숫자를 표현이 가능하며, 부호가 있으니 -2^(32-1) ~ 2^(32-1) - 1 / 부호가 없는 경우(unsigned) 0~(2^32)-1

solution

  • 작성언어 : javascript
// 초기코드
/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
    
};
  • leet code runtime 84 ms
/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
    
    const minInteger = Math.pow(-2, 31);
    const maxInteger = Math.pow(2, 31) - 1;
    
    let minusFlag = false;
    
    if(x < 0) {
        minusFlag = true;
    }

    let reverseNumber = String(Math.abs(x)).split('').reverse().join('');
    if(minusFlag) {
        reverseNumber = reverseNumber * -1;
    }
    
    if(minInteger <= reverseNumber && maxInteger >= reverseNumber) {
        return reverseNumber;
    } else {
        return 0;
    }
    
};
  • Math.pow(대상숫자, 제곱횟수);
  • 32비트 부호있는 숫자 범위가 아니면 0을 반환해야 한다.
  • 숫자값을 뒤집기 위해서, 문자열로 변환 후 split() 메서드로 배열로 변환 후 reverse() 호출 후 다시 해당 배열을 join() 을 메서드로 문자열로 변환해준다.
profile
developer life started : 2016.06.07 ~ 흔한 Front-end 개발자

0개의 댓글