[TIL]Code Kata Day4

devMarco·2022년 4월 14일
0

Today I Learned

목록 보기
2/4

숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요.
num: 숫자 return: true or false (뒤집은 모양이 num와 똑같은지 여부)
예를 들어, num = 123 return false => 뒤집은 모양이 321 이기 때문
num = 1221 return true => 뒤집은 모양이 1221 이기 때문
num = -121 return false => 뒤집은 모양이 121- 이기 때문
num = 10 return false => 뒤집은 모양이 01 이기 때문

문제를 보고 두번째 문제와 굉장히 유사하다는 생각이 들었다. 먼저 접근한 방법으로는 숫자를 문자열로 만들고 리버스를 해서 if문을 사용하려고 했다. 첫 코드를 작성하고 체크를 해보니 2문제만 통과가 되고 나머지 문제는 통과가 되지 않는 것이었다.검색을 해서 이유를 찾아내게 되었다. 이유는 넘버는 넘버와 비교를 해야하고 스트링은 스트링과 비교를 해야 하는 것이었다. num에서 전달 받은 인자는 넘버타입이고 내가 리버스를 해준 값은 스트링타입이라 둘의 ===같다는 연산자는 절대 성립이 불가능했다. 또 굳이 if 문 을 사용해서 블리언타입을 가져올 필요없이 바로 들어온 인자와 리버스한 인자를 비교하면 되는 것이었다.

const sameReverse = num => {
return num===Number(num.toString().split('').reverse().join(''))
}

0개의 댓글