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 |