숫자인 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 이기 때문
지난 코드카타 문제에서 비슷한 작업을 했던 적이 있어 풀이를 비교적 빠르게 떠올릴 수 있었다.
1) 숫자인 num을 string으로 바꾼 뒤 split("")
으로 각 자릿수마다 나누고,
reverse로 순서를 반대로 변경한 배열 reverseArr 만들기
2) reverseArr의 모든 요소를 문자열 형태로 결합한 reverseNum 만들기
const sameReverse = num => {
let reverseArr = num.toString().split("").reverse();
let reverseNum = reverseArr.join("")
/* - - - - - 위까지 step.1 - - - - - */
// if(num.toString() === reverseNum) {
// return true;
// } else {
// return false;
// }
}
여기서 문제가 있는데, num은 숫자이고 reverseNum은 string이다.
정확한 값 비교(===
)를 하고 싶어서 toString()
으로 숫자인 num을 string으로 변환해 일치하면 true, 불일치하면 false를 반환하는 조건문을 만들었다.
const sameReverse = num => {
let reverseArr = num.toString().split("").reverse();
let reverseNum = reverseArr.join("")
if(num.toString() === reverseNum) {
return true;
} else {
return false;
}
}
step.1 과 step.2를 병합하면, 위와 같이 정답 코드 완성! 🎉
문제를 풀 때마다 블로깅을 하며 착실히 복습했더니, 저번에 풀었던 문제와 겹치는 부분이 있는 이번 문제는 상대적으로 짧은 시간내에 풀 수 있었다.
문제를 푸는데에서 그치지말고 원리 파악 후 정리하는 연습 킵고잉 〰🏃♀️