[Code Kata] Day 2

오지수·2021년 6월 22일
0

CodeKata

목록 보기
2/7
post-thumbnail

오늘의 코드 카타 시간은 내가 자주 쓰지 않는 함수인 reverse를 사용하여 해결하는 방법을 정훈님을 통해 배울 수 있었다! 🤩

문제

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

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

예를 들어,

x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321

Code

const reverse = x => {
  let reverseString;
  
  if (x > 0) { // x가 양수일 때
    reverseString = String(x).split('').reverse().join('');
    return Number(reverseString);
    
    
  } else if (x < 0) { // x가 음수일 때
    x = x * (-1);
    reverseString = String(x).split('').reverse().join('');
    return Number(reverseString) * (-1);
    
  } else { // x가 0일 때
    return x;
  }
}
  • 내가 맨 처음에 생각했던 방식은 각 숫자를 배열로 저장시키고 for 반복문으로 새로운 배열에 거꾸로 집어넣는 방식이었다.
  • 하지만 이렇게 하면 코드가 길어지고 복잡해진다는 단점이 존재하였다.
  • 그래서 정훈님께서 알려주신 reverse를 사용한 방법을 참고삼아 새로운 코드를 작성하였다.
  • reverse() : 배열의 순서를 반전시킨다.
const arr1 = ['a', 'b', 'c']
const reverseArr = arr1.reverse();

// reverseArr 결과 : ['c', 'b', 'a']

+ Another Code

const reverse = x => {
  let reverseString = String(x).split('').reverse().join('');
  return parseInt(reverseString) * Math.sign(x);
}
  • 다른 동기분들의 코드를 구경하였는데 Math.sign 메서드를 쓰셔서 많이 해결하신 것을 알 수 있었다.

  • Main.sign() : 어떤 수가 양수인지 음수인지 0인지 알 수 있다.

    • 음수 = -1
    • 양수 = 1
    • 0 = 0
profile
My Moto:: 내 스스로와 더불어 주변에게도 좋은 영향을 행사하도록 점검 & 노력..!!

0개의 댓글