Algorithm - 정수인 숫자를 인수로 받기

rachel's blog·2021년 10월 19일
0

Algorithm

목록 보기
6/11
post-thumbnail

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

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

🥑나의 풀이

const reverse = x => {
  // 여기에 코드를 작성해주세요.
    let newStr = x.toString().split('');
    let newArr = [...newStr].reverse();

    if(newArr[newArr.length-1] ==='-') { 
      newArr = newArr.splice(0,newArr.length-1).join('');
      newArr = parseInt(newArr);
      return -newArr;
    } else {
      return parseInt(newArr.join(''));
    }                       
}

📌 접근방식

  1. split을 쓰고 싶어서 숫자로 반환한 x는 toString()메서드를 써서 배열 형태로 저장한다.

String.prototype.split()
split() 메서드는 String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눕니다.

Number.prototype.toString()
Number 객체에서 toString() 메소드는 특정 진수로 객체를 표현한 문자열을 환원합니다.

  1. 배열 형태로 저장하기 위해 newArr 변수를 사용해서 저장해주었고,
  2. 배열의 순서를 뒤집기 위한 방법으로 reverse()를 사용하였다.

배열의 순서 뒤집는 방법

  • for반복문 사용
  • Array.prototype.reverse()
    reverse 메서드는 호출한 배열을 반전하고 원본 배열을 변형하며 그 참조를 반환합니다.

for반복문 예시

let arr = [1, 2, 3];
const reverseArr = [];
for(let i=arr.length-1; i>=0; i--){
  reverseArr.push(arr[i]);
}
console.log(reverseArr) //[3, 2, 1]
  1. 여기서 음수일때 배열 안에 ['-'] 마이너스도 string처리되어 인덱스 요소로 들어간다.
    if..else문 조건문 사용 : reverse처리하면 ['-']는 맨 끝에 있게 되니까, 배열의 마지막요소에 ['-']이 있으면, 그 앞까지 배열을 잘라서 다시 하나로 이어주고, 이를 다시 숫자형태로 반환해줘.

💡 parseInt()와 Number()의 차이?

Number( ) : new 연산자를 사용하지 않고 Number 생성자 함수를 호출하면 Number 인스턴스가 아닌 숫자를 반환함. 이를 이용해서 명시적으로 타입을 변환하기도 한다.
불리언타입 변환 가능 : true - 0, false - 1
소수점타입 변환가능

parseInt( ) ,parseFloat( ) :
parseInt() 함수는 문자열 인자를 구문분석하여 특정 진수(수의 진법 체계에 기준이 되는 값)의 정수를 반환합니다.
불리언타입 변환 불가능(NaN 출력), 소수점타입 정수로만 변환가능.

Array.prototype.splice(index1, index2, 추가할 data)
splice() 메서드는 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경합니다.

profile
블로그 이전 : https://rachelslab.tistory.com/

0개의 댓글