JavaScript - 알고리즘 reverse

Moolbum·2021년 11월 16일
0

JavaScript

목록 보기
6/18
post-thumbnail

문제2 👨‍💻

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

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

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

const reverse = x => {
  
}
let number = -1234;
console.log(reverse(x));

해결방법

const reverse = x => {
  let plus = !( x < 0 );
  let nums = [...String(Math.abs(x))];
  let result = Number(nums.reverse().join(""));
  return plus ? result : -result;
}
let number = -1234;
console.log(reverse(x));  // -4321

let plus = !( x < 0 );

x가 음수가 아닐때 --> 양수일때

let nums = [...String(Math.abs(x))];

Math.abs() : 주어진 숫자의 절대값을 반환하는 메서드
x의 절대값을 문자열로 바꾸기 위해 String 메서드 사용
문자열로 바꾸는 이유는 주어진 인자 숫자위치를 바꾸기위해서다.
reverse 메서드를 사용하기위해선 배열이어야 하기때문에
이전에 미리 []감싸며 각각의 인덱스로 만들기위해 스프레드 문법[...]을 사용했다.

let result = Number(nums.reverse().join(""));

a.reverse() : 순서가 반전된 배열을 반환한다.

arr.join([separator]) : 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다.
arr.join('') --> [123] 공백으로 입력하면 모든요소를 합친다.
arr.join('-') --> [1-2-3] 입력한 -값이 합쳐서 출력된다

Number() : 타입을 숫자로 바꾼다.
배열 nums의 위치를 뒤집기위해 reverse를 사용하고 하나의 문자로 합치기위해 join을 사용합니다. 하지만 아직 문자형태인 관계로 결과값은 숫자로 반환해야 하기 때문에 Number를 사용한다.

return plus ? result : -result;

삼항조건연산자
x ? y : z; : x가 true 라면 y값이 나온다, x가 false 라면 z값이 나온다.

삼항 조건 연산자는 javascript 에서 세 개의 피연산자를 취할 수 있는 유일한 연산자입니다.

plus는 제일 처음구했던 x가 양수 일 때의 조건식이다.
변수 plus가 ture 즉 양수라면 result 값이 출력되고,
변수 plus가 false 즉 음수라면 -result 값이 출력된다.

profile
Junior Front-End Developer 👨‍💻

0개의 댓글