[코드타카]week1(2)- 숫자 reverse

JH Cho·2022년 8월 30일
0

알고리즘

목록 보기
4/12
const reverse = x => {
  let reversedArr = [];
  if(x>=0){
  x = x.toString().split('');
  for(let i = x.length -1; i >= 0; i--){
    reversedArr.push(x[i]);
  }
  let result = Number(reversedArr.join(''));
  
  return result;}else{
  x= x * -1
  x = x.toString().split('');
  
  for(let i = x.length -1; i >= 0; i--){
    reversedArr.push(x[i]);
  }
  let result = Number(reversedArr.join('')) * -1;
  
  return result;
    
  }
}

처음에는 양의 정수만 생각하고 코드를 만들었더니 음의 정수를 입력했을 때 NaN이 출력됐다.

그래서 인자가 양의 정수와 음의 정수일 때를 나눠 생각하고 음의 정수일 때는 -를 없애고 거꾸로 처리한 후에 다시 -를

곱해서 음의정수로 반환되게 하였다.

근데 코드가 너무 길어서 관련 메서드를 검색해봤고

  let result = 0;
  if(x>=0){
   result = Number(x.toString().split('').reverse().join(''));
  }else{
  x= x * -1
  result = Number(x.toString().split('').reverse().join('')) * -1;
  }
  return result;

이렇게 줄여졌다.

--- 메서드를 잘 사용하는 코드타카 메이트님의 코드 ---
const reverse = num => {
  if (num >= 0) {
    return Number(num.toString().split(“”).reverse().join(“”))
  } else {
    return Number((num * -1).toString().split(“”).reverse().join(“”)) * -1
  }
}

반성 : 좀 더 메서드를 찾아보는 습관을 길러야겠다. 습관적으로 빈배열이나 빈문자열 등을 만들어서 for문을 돌리려고
하는데 메서드들의 동작 원리는 거의 for문이나 if문으로 어떻게 돌아가는지 어느정도 이해를 한 상태이니 이젠 좀더 클린 코드를
잘 짤 수 있는 인간이 돼야겠다.

profile
주먹구구식은 버리고 Why & How를 고민하며 프로그래밍 하는 개발자가 되자!

0개의 댓글