[Code Kata] Week1 - Day2

JU CHEOLJIN·2021년 8월 19일
0

Algorithm

목록 보기
14/16
post-thumbnail

문제

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

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

예들 들어,
x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321

풀이

const reverse = x => {
  // 여기에 코드를 작성해주세요.
  let numArray = x.toString().split('');
  let result = numArray.reverse();
  if (x < 0) {
    return -parseInt(result.join(''));
  } else {
    return parseInt(result.join(''));
  }
}

step 1

숫자를 입력 받아 이를 배열의 형태로 변경한다.

step 2

변경된 숫자의 배열에 reverse() 메소드를 사용하여 반전을 시켜준다.

step 3

만약 초기에 입력된 숫자가 음수라면 result.join('') 을 통해 반전 된 배열을 다시 합쳐주고 -parseInt 를 사용해서 음의 정수로 변환한 뒤에 반환한다. 만약 양의 정수를 입력 받는다면 같은 동작을 하되 - 붙이지 않고 양의 정수를 반환해준다.

기억하자! 😎

처음에는 Number() 를 통해서 문제를 해결하려고 했고, 이로 인해서 불필요한 코드가 늘어났다. 하지만, 비슷한 쓰임새를 가졌지만 메소드에서 받은 인자를 정수로 반환하는 parseInt() 를 사용하면 음수의 경우에 다른 코드가 필요 없이 NaN 이 아닌 제대로 된 정수값을 받을 수 있었다.

페어 세준님의 코드를 보면서 알게 된 사실인데 "숫자? Number()이지!" 라는 단순한 생각으로 코드를 작성했다는 생각이 들어서 부끄러웠다. 평소 알고리즘 문제에 접근할 때 효율적인 방향에 대한 고민이 부족하다고 느껴졌다.

항상 빠르게만 해결하는 것이 베스트가 아님을 기억하자. 때로는 느리더라도 옳고 좋은 방향일 때가 많다.

profile
사회에 도움이 되는 것은 꿈, 바로 옆의 도움이 되는 것은 평생 목표인 개발자.

0개의 댓글