숫자인 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 이기 때문
우선 보자마자 코드카타 2번 문제가 생각났다. '뒤집은'이라는 키워드 때문이었다.
처음에 제출한 코드는 아래와 같다.
const sameReverse = num => {
const reverse = parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num);
if (reverse === num) {
return true;
} else {
return false;
}
}
그런데 두 개의 조건과 맞지 않는다는 창이 떴다.
문제를 다시 보니 숫자를 뒤집었을 때 -가 숫자 앞으로 오면 안되는 조건이 있었다.
그러면 여기서 뒤집은 숫자는 type이 숫자가 아니라는 말이니까 실수로 바꿔주는 parseFloat() 메서드를
삭제했다.
그랬더니 패스되었다!
ㅋㅋ 10분 컷~~~
아래는 최종 제출한 코드다.
const sameReverse = num => {
const reverse = num.toString().split('').reverse().join('') * Math.sign(num);
if (reverse === num) {
return true;
} else {
return false;
}
}
console.log(sameReverse(1234)); // false
console.log(sameReverse(3524)); // false
console.log(sameReverse(1221)); // true
console.log(sameReverse(4224)); // true
console.log(sameReverse(-4224)); // false
console.log(sameReverse(-4221)); // false
console.log(sameReverse(-101)); // false