[위코드 No.7] Code Kata(+ 21.09.23 수정)

Jetom·2021년 9월 14일
0

Javascript

목록 보기
14/25
post-thumbnail

문제

  • reverse 함수에 정수인 숫자를 인자로 받습니다. 그 숫자를 뒤집어서 return해주세요.
  • 예들 들어, x: 1234 return: 4321이 반환되어야합니다.
  • x: -1234 return: -4321

나름대로의 알고리즘 🧐

  1. xStr이라는 변수를 만든다. (x의 length를 구해야하므로 string으로 형변환 해준다.)

  2. arr라는 빈 배열을 만든다(배열의 메서드를 활용하기 위함)

  3. 결괏값을 담을 result 변수를 만든다.

  4. for문을 활용해서 거꾸로 출력하되, 조건은 다음과 같다.
    i는 xStr.length-1(= xStr의 마지막 수)
    i >= 0 (xStr[0]까지 나와야하기 때문에 i가 0보다 크거나 같다라고 사용했다.)
    i--로 계속 감소시켜준다.

  5. 거꾸로 돌 때마다 빈 배열인 arr에 담아준다.

  6. for문을 돌 때 x가 "-"를 가지고 있다면 뒤로 가기때문에
    앞으로 올 수 있도록 unshift("-")를 하고, arr.pop();로 뒤의 "-"를 빼준다. 그리고 result에 join인 메서드를 활용하여 값을 담아준다.

  7. "-"가 없다면 join으로 string으로 만들어준다.

  8. 최종적으로 정수가 나와야하므로 Number로 result를 바꾸어준다.


const reverse = x => {
  //정수를 배열로 바꾸기 위해 우선 string으로 넘겨준다.
  const xStr = String(x);
  let arr = [];
  let result = '';

  for(let i = xStr.length-1; i >= 0; i--){
    //거꾸로 돌린 값 하나하나를 담는다.
    arr.push(xStr[i]);

    if(xStr[i] === "-"){
      arr.unshift("-");
      arr.pop();
      result = arr.join('');
    } else {
      result = arr.join('');
    }
  }

  //최종적으로 정수가 찍혀야하기때문에 number로 바꿔준다.
  return Number(result);
}

console.log(reverse(-1234));

😓 형변환.... 진짜 쫌 많이 괴랄한거같다..

profile
사람이 좋은 인간 리트리버 신혜리입니다🐶

0개의 댓글