reverseNumber.js (7kyu 56)

Codewars 알고리즘 풀이


Problem

  • Given a number, write a function to output its reverse digits.
    • 주어진 숫자의 역수를 출력하는 함수를 작성한다.
  • A negative number should still be negative when reversed.
    • 음수는 여전히 음수여야 한다.


Solution 01

function reverseNumber(n) {
  let reverseStr = Math.abs(n).toString().split('').reverse().join('');
  let result = +reverseStr;
  
  return n < 0 ? -result : result;
}

reverseNumber(0);     // 0
reverseNumber(1000);  // 1
reverseNumber(1234);  // 4321
reverseNumber(-123);  // -321

Math.abs(): 주어진 숫자의 절대값(absolute value)을 반환한다.

toString(): 숫자를 문자열로 변환한다.

split(): 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.

reverse(): 배열 내 element의 순서를 반전한다.

join(): 배열의 모든 element를 결합하고, 새 문자열로 반환한다.


Solution 02

function reverseNumber(n) {
  return (n < 0 ? -1 : 1) * Math.abs(n).toString().split('').reverse().join('');
}

reverseNumber(0);     // 0
reverseNumber(1000);  // 1
reverseNumber(1234);  // 4321
reverseNumber(-123);  // -321


Solution 03

function reverseNumber(n) {
  return (n < 0 ? -1 : 1) * +[...('' + Math.abs(n))].reverse().join('');
}

reverseNumber(0);     // 0
reverseNumber(1000);  // 1
reverseNumber(1234);  // 4321
reverseNumber(-123);  // -321


Solution 04

function reverseNumber(n) {
  return parseInt((n < 0 ? '-' : '') + Math.abs(n).toString().split('').reverse().join(''));
}

reverseNumber(0);     // 0
reverseNumber(1000);  // 1
reverseNumber(1234);  // 4321
reverseNumber(-123);  // -321

parseInt(): 문자열을 구문 분석하고, 정수를 반환한다.