[Day 4] 숫자를 뒤집어 원래값과 같은지 여부 구하기

누리·2022년 10월 13일
0

CodeKata

목록 보기
4/7

📅 2022.10.07
📖 파트너 : 모유진

문제설명 :
숫자인 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 이기 때문

reverse 메서드를 이용한 풀이

Day2 와 다르게 음수인 숫자를 넘겨서 뒤집으면 - 부호 또한 같이 뒤집히므로 숫자로 생각하지 않고 문자열로 바꿔 그냥 reverse 메서드를 사용해 배열을 다 뒤집은 배열과 원본 배열을 하나하나 비교하면 된다

const sameReverse = num => {
  
  const numArray = num.toString().split("");
  console.log(numArray);
  
  const reverseNum = [...numArray].reverse();
  console.log(reverseNum);
  
  for(let i = 0; numArray.length; i++){
    if(numArray[i] === reverseNum[i]){
      return true;
    }
    return false;
  }
}

우선 인자로 받은 num을 문자열로 바꾼다음 배열로 반환하여 새로운 변수에 저장하고 배열 요소를 뒤집은 배열을 새로 저장한다
그리고 반복문안에서 요소 하나하나를 같은지 다른지 비교하여 boolean 값을 리턴한다


이 코드를 짤 때 유의해야 할 점은

  • reverse 메서드를 사용시 원본배열에서 바로 사용하면 원본 배열에 영향이 가기 때문에 원본배열의 요소만 반환하기 위해 [...원본배열] 전개연산자를 사용하여 새로운 배열로 반환하여야 한다
  • 그리고 원본 배열과 뒤집은 배열을 비교시에 바로 조건문으로 비교 하게 되면 배열의 각각 요소의 값은 같더라도 배열은 객체의 한종류이기 때문에 주소값만 비교하여 무조건 false 가 반환되게 될것이다 numArray === reverseNum
  • 그래서 반복문을 사용해 요소 하나하나의 값을 비교하도록 코드를 구성했다
profile
프론트엔드 개발자

0개의 댓글