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 이기 때문
💡 My Solution
const sameReverse = num => {
let value = String(num); // num 인자를 문자열로 변환해준다.
let arr = value.split(''); // split을 사용해서 배열로 쪼개준다.
let reverseArr = arr.reverse(); // 새 배열에 arr 배열을 뒤집은 것을 넣어준다.
let reverseNum = reverseArr.join(''); // reverseArr 배열의 값을 join으로 합쳐서 reverseNum 변수에 저장한다.
if (reverseNum == num) { // reverseNum과 문자열로 변환한 num 인자를 비교해서
return true; // 같으면 true 반환
} else {
return false; // 다르면 false 반환
}
}
Flow를 적어보면서 푸니까 문제 접근 방법에 대한 감이 슬슬 온다!! 😃
원래는
if (reverseNum === String(num)) { // reverseNum과 문자열로 변환한 num 인자를 비교해서
return true; // 같으면 true 반환
} else {
return false; // 다르면 false 반환
}
}
이렇게 엄격한 비교인 ===를 사용하고 num 인자의 type도 String으로 맞춰서 풀었는데
열음님이 == 를 사용하면 type까진 비교를 하지 않는다고 알려주셔서 좀 더 깔끔하게 코드를 바꿔봤다...!!!!❤️❤️❤️