코드카타 2일차

여리·2023년 1월 17일
0

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

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

예들 들어, x: 1234 return: 4321

x: -1234 return: -4321

x: 1230 return: 321


간단한 문제인것 같지만 나에게는 너무나도 어려운 코드구현...
끙끙앓아가면서 고민했을때 답이 잘 안나오다가 집에와서 다시금 마음을 다잡고
코드를 작성해봤다.. 아마 깔끔하지는 않은 코드같은데 좋은추가코드가 있으면
그때그때 확인해서 코드카타2일차.push(좋은추가코드) 해야겠다.

컴퓨터적 사고로 순차적으로 생각하면...
1. 숫자를 문자로 변환
2. 문자를 split하여 배열로 변환
3. reverse 메소드를 사용하여 배열을 뒤집는다
➡️ (이때 조건2개를 위하여 이걸 중심 변수로 할당한다.)

  • 이때 뒤집은 배열의 맨 앞에 0이면 shfit 메소드를 통하여 0을 삭제한 후
    배열을 다시 join 메소드를 사용하여 문자열을 숫자로 나오는 Number(result)값을 도출한다.
  • 이때 뒤집은 배열의 맨 뒤가 '-'이면 pop메소드를 사용하여 '-'를 삭제한후
    unshift 메소드를 사용하여 '-'를 배열의 맨앞으로 가져온 후에 배열을 다시 join 메소드를 사용하여 문자열을 숫자로 나오는 Number(result) 값을 도출한다.
  1. if조건이 둘다 맞지 않으면 배열을 뒤집은 배열을 join메소드를 사용하여 문자열을 숫자로 나오는 Number(result) 값을 도출한다

내가 작성한 코드카타2일차 구현코드

const reverse = x =>{
  let arrReverse = x.toString().split("").reverse();
  let result;
  if(arrReverse[0] == 0){
    arrReverse.shift()
    result= arrReverse.join("");
  } else if(arrReverse[arrReverse.length-1] == '-' ){
    arrReverse.pop()
    arrReverse.unshift('-');
    result = arrReverse.join("");
    }else{
    result = arrReverse.join("")
    }
    return result
}

코드가 지저분한것 같네... 에휴...😭

남이 작성한 코드카타2일차 구현코드

const reverse = x => {
  let str = x.toString();
  const arr = [];
  const reverseArr = [];
  for (let i = 0; i < str.length; i++) {
    arr.push(str[i]);
  }
  if (arr[0] === '-') {
    for (let i = 1; i < arr.length; i++) {
      reverseArr.unshift(arr[i]);
    }
    const newReverse = reverseArr.toString().replace(/,/g, '');
    return -Number(newReverse);
  }
  else {
    for (let i = 0; i < arr.length; i++) {
      reverseArr.unshift(arr[i]);
    }
    const newReverse = reverseArr.toString().replace(/,/g, '');
    return Number(newReverse);
  }
}
const reverse = x => {
  const result = (x + '').split('')
  result.reverse()
  for (let i = result.length-1; i >= 0; i--) {
    if (result[i] == 0) {
      return result.splice(i,1)
      console.log(result)
    }
    else if (result[i] === '-') {
      return result.unshift(i)
      console.log(result, "abc")
    }
  }
  }
  //     return result.join("")
  //     console.log(result)
  //   }
  //   else if (result[i] < 0) {
  //     result[i]
  //   }
  // }
  // let str = result.join("")
  // return str


console.log(reverse(-1234));
module.exports = { reverse };
profile
beckend developer

0개의 댓글