Q. 주어진 integer를 정반대로 뒤바꾸고 return하라.
--- Examples
reverseInt(15) === 51
reverseInt(981) === 189
reverseInt(500) === 5
reverseInt(-15) === -51
reverseInt(-90) === -9
Code
😢 정반대로 바꾸는 것은 문제가 없었으나, 부호를 살리는 것과 다시 num type 으로 바꾸는 것에 대해서 어떻게 효율적으로 코드를 작성할 수 있을지 조금 고민을 했다.
😊 Math.sign()을 이용해 깔끔하게 부호를 살릴 수 있었고, Reverse String에서 쓰던 Skill들을 그대로 사용하였다.
그 외에 추가된 Skill은 toString(), parseInt()가 있다.
✔ Math.sign()
Math.sign()를 이용해 해당 변수의 부호를 알아내고 활용할 수 있다.
위의 소스코드에서 보면 알 수 있듯, arguments로 들어오는 n의 부호를 마지막에 곱해주어 해당 -(negative)를 다시 살려주었다.
✔ Number.prototype.toString()
처음에 들어오는 arguments가 number type이므로 reverse()를 이용할 것이라면 toString()으로 반드시 변환해줘야 한다.
그리고 reverse()를 사용하기 전에 split()사용하여 array로 반드시 변환해줘야 한다. Array.prototype.reverse()이기 때문이다.
✔ Global.parseInt()
string과 array를 이용해 number를 뒤바꾸어 주었으니, 최종값은 parseInt()를 이용해 number type으로 변환해야 한다.
Full Code
function reverseInt(n) { |
let reversed = n |
.toString() |
.split('') |
.reverse() |
.join(''); |
return parseInt(reversed) * Math.sign(n); |
} |
// function reverseInt(n) { |
// let rev = ''; |
// for (let num of n.toString()) { |
// rev = num + rev; |
// } |
// return Math.sign(n) * parseInt(rev); |
// } |
// function reverseInt(n) { |
// return ( |
// Math.sign(n) * |
// parseInt( |
// n |
// .toString() |
// .split('') |
// .reduce((rev, num) => (rev = num + rev)) |
// ) |
// ); |
// } |
'Algorithm > JavaScript(Node.js)' 카테고리의 다른 글
Max Chars(가장 많이 쓰인 문자 찾기) Node.js(JavaScript) (0) | 2019.12.27 |
---|---|
Palindrome(회문 구조) 확인하기 Node.js(JavaScript) (0) | 2019.12.24 |
Reverse String(문자열 거꾸로 바꾸기) Node.js(JavaScript) (0) | 2019.12.23 |
백준 1546번: 평균(New average) Node.js(JavaScript) (0) | 2019.12.22 |
백준 3052번: 나머지(The rest) Node.js(JavaScript) (0) | 2019.12.22 |