[Codekata] 알고리즘 week1-4

[문제]

숫자인 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 이기 때문

[해답]

const sameReverse = num => {

  let stringToNum=num.toString();
  let splitNum=parseInt(stringToNum.split('').reverse().join(''));
  
  if(num === splitNum){
    return true;
  }else{
    return false;
  }
  }
console.log(sameReverse(454545))

[나의 해석]

let stringToNum=num.toString();
  1. 처음엔 내가 인자로 넣은 숫자를 string으로 변환시켜서 변수에 넣었다.
stringToNum.split('')
  1. 그 수를 한글자씩 쪼개서 새로운 배열에 반환시킨다.
stringToNum.split('').reverse()
  1. ex) [4,5,6,7]이면 reverse()함수를 통해 배열의 값들을 뒤집는다.
    ->[7,6,5,4]
stringToNum.split('').reverse().join('')
  1. 담겨진 배열의 값들을 join('') 함수를 통해 합쳐준다 -> [4567]
splitNum=parseInt(stringToNum.split('').reverse().join(''));
  1. 지금은 값들이 string 형태기 때문에, parseInt를 이용해 number 형식으로 바꾸어 새로운 변수에 저장한다.
if(num === splitNum){
    return true;
  }else{
    return false;
  }
  }
  1. 만약 입력해준 숫자(num)이 그 뒤집은 값과 같다면 true 반환하기!

좋은 웹페이지 즐겨찾기