코드카타 #02

문제


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

x: 숫자 return: 뒤집어진 숫자를 반환!
예들 들어, x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 32


첫번째 풀이

let x = -1234

const reverse = x => {
  let xString = String(x);
  let numsArr = xString.split('')
  numsArr.reverse();
  if (x < 0) {
    numsArr.pop()
    return numsArr.join('') * -1
  }
  return numsArr.join('') * 1
}

풀이 과정

  • xnumber 값이라 string 으로 바꾸기 위해 String() 메소드를 사용합니다
  • xsplit('')를 사용해 각 요소마다 분리해 줍니다.
  • reverse 를 이용해 배열 값들을 뒤집어 줍니다.
  • if 문을 이용해 x가 0보다 작을때 join()으로 한 문자열로 합친뒤 -1 을 곱해 number 값으로 반환하게 합니다.
  • x가 0보다 클때 join()으로 한 문자열로 합친뒤 1 을 곱해 number 값으로 반환하게 합니다.

용현님 풀이

let x = -1234

const reverse = x => {
return x < 0 ? (-x).toString().split('').reverse().join('')*-1 : x.toString().split('').reverse().join('')*1;
}

위 코드와 다른점

  • if문 대신 조건 연산자 ?를 사용했다.
  • 메소드 들을 중첩해서 코드를 짧게 줄일수 있었다.

짧은 회고

오늘 처음 문제를 보고 풀려고 할때 음수 -값을 생각하지 않고 돌렸더니 NMN만 계속 나왔었다.
어떻게 풀어야할지 감이 안올때 용현님이 오셔서 용현님 생각을 듣고 코드를 적어보니 조금씩 이해가 됬던거 같다. 메소드 들을 저렇게 중첩해서 사용하는것과 조건 연산자 ?를 활용하는 방법을 알게된거 같아 배울점이 많았던 시간이였던거 같다 앞으로 더 생각해서 혼자 풀어볼수 있도록 노력해야겠다.

좋은 웹페이지 즐겨찾기