정수 뒤집기(Integer Reversal)

강명모(codingBear)·2022년 2월 21일
0

algorithm_JavaScript

목록 보기
7/36
post-thumbnail

References

아래 링크의 강의 중 Section 5. Integer Reversal의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy


Solution 1. my solution

function reverseInt(n) {
  let reversed = String(n).split("").reverse();

  if (reversed[reversed.length - 1] === "-") {
    reversed.pop();// reversed = ["5", "1"]
    reversed = reversed.join("");
    return Number(reversed) - Number(reversed) * 2;
  } else {
    reversed = reversed.join("");
    return Number(reversed);
  }
}
console.log(reverseInt(15));// 51
console.log(reverseInt(-15)); // -51
  1. 입력값 n을 문자열로 변환하여 역순으로 정렬한 배열로 만든 다음 변수 reversed에 저장.
  2. 음수를 판별하기 위해 배열 reversed의 마지막 값이 "-"라면 pop()으로 마지막 값 "-"reversed에서 덜어내고 숫자로 만든 reversed의 2배만큼을 reversed에서 빼준 값을 반환.
  3. 양수라면 join()으로 배열 reversed를 합쳐서 그 값을 반환.

parseInt()_MDN_Link


Solution 2. with if

function reverseInt(n) {
  const reversed = n.toString().split("").reverse().join("");
  
  if (n < 0) {
    return parseInt(reversed) * -1;
  }
  return parseInt(reversed);
}
console.log(reverseInt(15));// 51
console.log(reverseInt(-15)); // -51
  1. 입력값 n을 문자열로 변환하여 역순으로 정렬한 다음 상수 reversed에 저장.
  2. 입력값 n0보다 작다면 출력값을 음수로 만들기 위해 parseInt(reversed)-1을 곱하여 반환.
  3. 양수일 경우 parseInt(reversed)로 정수값을 출력.

Solution 3. with Math.sign()

function reverseInt(n) {
  const reversed = n.toString().split("").reverse().join("");

  return parseInt(reversed) * Math.sign(n);
}
console.log(reverseInt(15));// 51
console.log(reverseInt(-15)); // -51
  1. 입력값 n을 문자열로 변환하여 역순으로 정렬한 다음 상수 reversed에 저장.
  2. Math.sign()을 활용하여 입력값 n이 음수라면 -1, 양수라면 1parseInt(reversed)에 곱하여 결과값 반환.

Math.sign()

Math.sign()_MDN_Link

Math.sign(x)

Parameters
x: 기본적으로 숫자가 들어가나, 숫자가 아닐 경우 자동으로 숫자로 변환하여 입력됨.

반환값
argument 양수: 1
argument 음수: -1
argument 0: 0
argument -0: -0
그 이외엔 NaN을 반환.



함께 보기

문자열 뒤집기(String Reversal)

profile
front-end 분야를 중점으로 공부 중!🐣

0개의 댓글