reverse 함수

Luluzoe·2021년 10월 19일
0
post-thumbnail

문제

const reverse = x => {}

reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집어서 return해주세요.

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

예들 들어, x: 1234 return: 4321

x: -1234 return: -4321

x: 1230 return: 321

어떻게 접근할 것인가?

  1. 뒤집어야 한다. 뒤집으려면 배열로 바꿔야겠다고 생각.
  2. 배열로 정렬 한다면 숫자를 문자로 먼저 바꿔야겠다!
  3. 뒤집었을때 0이 앞자리로 오면 어떻게 뗄까?
  4. 음수라면 - 부호를 어떻게 유지해야할까?
  5. 배열을 다시 합치고 숫자로 만들어줘야겠다.

나의 코드

const reverse = x => {
  let str = String(x);
  
  let split = Array.from(str);
  
  let arr = [];
  
  for(let i = split.length-1; i>=0; i--){
      if(split[i]==="-"){
        arr.unshift(split[0]);
      } else {
        arr.push(split[i]);
      }
  }
let join = arr.join("");
return Number(join)
}

숫자 x를 문자열로 바꾸어주고, Array.from()을 이용하여 배열로 만들어 줍니다.

for문을 이용하여 역순으로 순회해 빈 배열에 넣어줍니다. 이 때 -부호가 있다면 unshift를 이용해 배열 맨 앞에 추가합니다.

join을 이용해 배열을 하나의 문자열로 바꾸어줍니다.

마지막으로 Number함수를 이용해 문자열을 숫자로 바꾸어줍니다.

마무리

숫자를 문자로, 문자를 배열로 바꾸는 것을 알게되었습니다. for문을 역순으로 순회하는 방법 또한 다시 알게되었고, join함수에 대해서도 알게되었습니다.

빈 배열 arrfor문 안에 입력하여, arr배열의 요소가 한 개씩 console에 찍히는 오류를 맞이하였고, for문 밖에서 선언 함으로써 원하는 값을 얻을 수 있었습니다.

0개의 댓글