sameReverse 함수
문제
const sameReverse = num => {}
숫자인 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 이기 때문
어떻게 접근할 것 인가?
'-
'부호가 있으면 뒤집었을 때 같을 수 있을까? 모두 false.
우선 숫자를 문자로 변환하고, 문자를 뒤집어 주자.
문자를 뒤집을 때는 배열을 이용하여 하나씩 넣어주는 방법을 써보자.
그리고 배열을 비교하자.
나의 코드
const sameReverse = num => {
let str = String(num);
let split = Array.from(str);
let arr = [];
for(let i = split.length-1; i>=0; i--){
arr.push(split[i])}
if(split == arr){
return true
} else {
return false
}
}
sameReverse(1221)
테스트를 통과하지 못 했다. 콘솔을 찍어본 결과 배열이 같아 보여
true
로 나올 것으로 예상했지만,false
가 나왔다. 비교연산자를 이용하여 배열을 비교할 때 배열의 값을 비교하는 것이 아니라 값의 주소를 비교한다는 것!
join
메서드를 이용해 배열을 벗겨서 문자로 만들어주고,Number
메서드로 다시 숫자로 만들어 비교하였다. 결과는true
가 나왔다.
마무리
배열을 비교할 때는 조심하자. console을 출력해보고도 이상하면 그 부분에 대해 알아보자.
숫자를 문자로, 문자를 배열로, 배열을 다시 문자로.
유연한 사고를 가지자.
Author And Source
이 문제에 관하여(sameReverse 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimnew6/sameReverse저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)