상세 컨텐츠

본문 제목

TIL 알고리즘 넘버 역순 반환하기

Coding/알고리즘

by hwlink 2021. 11. 16. 20:54

본문

 

 

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

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

예들 들어, x: 1234 return: 4321

x: -1234 return: -4321

x: 1230 return: 321

 

const reverse = x => {
   let toStr =  String(x); //넘버를 스트링으로 전환
   let result = Array.from(toStr);// 각각의 배열로 저장 ['2','3','4','5']
   result.reverse();// 배열을 리버스 해주는 배열 메서드 ['5','4','3','2']
   let aa2 = result.join(''); // join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다. 
   let re = parseInt(aa2); // 정수로 전환
   if(x<0){
     return '-' + re
   }else{
     return re
   }
}

// reverse(2345); Or reverse(-3667);

처음 문제 접근을 위처럼 하였고, 음수도 생각해서 반환해주어야 하기 때문에  if문 내에  '-'+ re 를 음수를 받았을시 -5432을 리턴하도록 하였다. 하지만   스트링+넘버  를 할시에 타입이 스트링타입으로 변한다는걸 몰랐었다....

 

1 + '-'  =  string타입이다.  (문자열+숫자) 

 

 

아래와 같이 -1를 곱해주는것으로 타입변환없이 해결했다.

const reverse = x => {
   let toStr =  String(x); //넘버를 스트링으로 전환
   let result = Array.from(toStr);// 각각의 배열로 저장 ['2','3','4','5']
   result.reverse();// 배열을 리버스 해주는 배열 메서드 ['5','4','3','2']
   let aa2 = result.join(''); // join() 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만듭니다. 
   let re = parseInt(aa2); // 정수로 전환
   if(x<0){
     return re * -1
   }else{
     return re
   }
}

// reverse(2345); Or reverse(-3667);

 

관련글 더보기