ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JavaScript:: 정수 뒤집어 return 하기
    알고리즘 2020. 7. 7. 13:50
    < 문제 >
    reverse 함수에 정수인 숫자를 인자로 받습니다.
    그 숫자를 뒤집에서 return 해주세요.

    x : 숫자
    return : 뒤집어진 숫자를 반환!

    예를들어,

    x : 1234
    return : 4321

    x : -1234
    return : -4321

    x : 1230
    return : 321

     

     

     

    우리가 함수를 통해 구현해야 할 것은 아래와 같다.

     

    1. x가 숫자인 상태에서 수를 뒤집을 수 없으니 x를 문자열로 바꾸어 주어야 한다.

     

    2. x 문자열의 각 요소를 분리하여 하나의 배열로 만든다.

     

    3. 배열의 자리를 뒤집는다.

     

    4. 만약 배열에 '-' 가 들어갈 경우, 배열을 뒤집었을 때 - 가 맨 뒤로 가기에 뒤에 있는 -를 빼주고 배열의 맨 앞에 -를 넣어준다.

     

    5. 만약 배열 index 0번째 자리에 0이 올 경우, 배열 첫 자리를 생략해준다.

     

    6. 결과값의 배열을 하나의 string으로 붙여주고, 숫자로 변환한다.

     

     

    각 구현 방법은 아래와 같다.

     

    1. x.toString()

     

    2. x.split('')

     

    3. x.reverse()

     

    4. .pop() ,  .unshift();

    if(string[string.lenth-1] === '-') {
    	string.pop();
        string.unshift('-');
    }

     

    5. .shift()

    else if(string[0] === 0) {
    	string.shift();
    }

     

    6. Number( .join(''));

     

     


    완성 코드는 아래와 같다.

     

    const reverse = x => {
      let string = x.toString().split("").reverse();
      console.log(string);
      if(string[string.length-1] === '-') {
        string.pop();
        string.unshift('-');
      } else if(string[0] === 0) {
        string.shift();
      }
      return Number(string.join(''));
    }
    
    reverse(12340);

     

    또 다른 방법은 아래와 같다. 

     

    function reverse(x) {
      let minus = false;
      
      if (x < 0) {
          x *= -1; // -를 곱해주어서 양수로 만들기
          minus = true;
      }
      
      let numText = x.toString();
      let result = '';
      
      for (let i = numText.length-1; i >= 0; i--) {
          result += numText[i];
      }
      
      // 기존 수가 음수일 경우, 다시 -를 곱해서 음수로 만들어준다.
      result = minus ? result * -1 : Number(result);
      
      return result;
    }

    댓글

Designed by Tistory.