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(''));
}
}
숫자를 입력 받아 이를 배열의 형태로 변경한다.
변경된 숫자의 배열에 reverse()
메소드를 사용하여 반전을 시켜준다.
만약 초기에 입력된 숫자가 음수라면 result.join('')
을 통해 반전 된 배열을 다시 합쳐주고 -parseInt
를 사용해서 음의 정수로 변환한 뒤에 반환한다. 만약 양의 정수를 입력 받는다면 같은 동작을 하되 -
붙이지 않고 양의 정수를 반환해준다.
처음에는 Number()
를 통해서 문제를 해결하려고 했고, 이로 인해서 불필요한 코드가 늘어났다. 하지만, 비슷한 쓰임새를 가졌지만 메소드에서 받은 인자를 정수로 반환하는 parseInt()
를 사용하면 음수의 경우에 다른 코드가 필요 없이 NaN
이 아닌 제대로 된 정수값을 받을 수 있었다.
페어 세준님의 코드를 보면서 알게 된 사실인데 "숫자? Number()이지!" 라는 단순한 생각으로 코드를 작성했다는 생각이 들어서 부끄러웠다. 평소 알고리즘 문제에 접근할 때 효율적인 방향에 대한 고민이 부족하다고 느껴졌다.
항상 빠르게만 해결하는 것이 베스트가 아님을 기억하자. 때로는 느리더라도 옳고 좋은 방향일 때가 많다.