Code Kata 숫자 뒤집기

Moon Hayden·2022년 8월 3일
2

숫자를 인자로 받는 reverse 함수를 뒤집어서 return하는 문제를 풀어보았다.

예를들면 아래와 같은 결과물이 도출되면 된다.
x: 1234 return: 4321
x: -1234 return: -4321

먼저 x를 스트링으로 바꾸기 위해 아래와 같은 메서드를 이용하였다.
const q = x.toString()
그리고 q를 spilt 메서드를 이용해 배열로 만들어 주었다.
const w = q.split("")
마지막 하이라이트 reverse 메서드를 이용해 역전 시켜 주었다.
const e = w.reverse()

여기서 문제는 만약 인자로 받는 수가 음수일 경우 -가 아래와 같이 나오게 된다.

4321-

그래서 if 문을 이용해 음수일 경우 마지막 -를 splice를 통해 지워주고 unshift를 통해 배열의 첫번째에 넣어준 뒤 join과 parseInt를 사용하여 결과물을 하나의 문자열로 만들어 주고 다시 이것을 숫자형으로 변환 하였다.

  if (e.indexOf("-") !== -1) {
    e.splice(e.length - 1 )
    e.unshift("-")
    console.log(e)
    return parseInt(e.join(''))
  }

그리고 마지막 양수일 경우도 적어주었다.
return parseInt(e.join(''))

그리고 합쳐진 총 결과물

const reverse = x => {
  // 여기에 코드를 작성해주세요.
  const q = x.toString()
  const w = q.split("")
  const e = w.reverse()

  if (e.indexOf("-") !== -1) {
    e.splice(e.length - 1 )
    e.unshift("-")
    console.log(e)
    return parseInt(e.join(''))
  }
    
  else{
  return parseInt(e.join(''))
  }
}

let a = -1234;
console.log(reverse(a))

느낀점

for 문을 사용해 순서를 바꾸려는 구상과 인자가 숫자인 상태에서 바꿀수 없을까? 하는 생각 등 여러 접근으로 구글링을 하다가 우연히 reverse메서드를 알게 되었고 이를 접목시켜 문제를 해결 할 수 있었다.

풀면서 너무 많은 메서드가 사용되는 것이 아닌가? 하는 의문으로 시작해 이게 될까? 하는 생각도 들었지만, 가장 중요한것은 일단 머릿속으로 구상이 되면 구글링 하면서 바로 시도해보는 것이 좋다 라는 결론을 얻었다.

앞으로는 자신감 있게 코딩 하도록 하겠다.

아 물론 코딩 스터디도 꾸준히 하겠다!

profile
매일 꾸준히 성장하는 마라토너 개발자 🏃‍♂️

1개의 댓글

comment-user-thumbnail
2022년 8월 3일

굳!

답글 달기