[알고리즘] num의 reverse모양의 비교

sodalite·2021년 11월 18일
0

🖥 숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 (true/false)로 반환

🤔 내가 생각한 코드

const searchReverse = num => {
  let a =[...String(num)].reverse().join('');
  return (num == a ? true : false);
}
searchReverse('123') //false 뒤집은 모양이 321 이기 때문
searchReverse('12321') //true 뒤집은 모양이 12321 이기 때문
searchReverse('-11') //false 뒤집은 모양이 11- 이기 때문
searchReverse('10') //false 뒤집은 모양이 01 이기 때문

🤔 세부 프로세스를 확인하면서 풀어보기

* 생각한 포인트👇

뒤집은 모양이 num과 같은지 확인하기 위해서는 인자로 들어원 num을 string형태로 뒤집은 것을 변수로 두어 원래 들어왔던 num 과 비교를 해야겠다. 그리고, 요소의 순서를 바꾸는 reverse메소드를 사용하기 위해서 배열을 만들어야겠다. 그리고 다시 한 번 string형태로 바꿔줘야겠다.
그런 후num과 string형태의 변수와 같은지 조건문을 새워 알고리즘을 풀어내겠다!!

let a =[...String(num)].reverse().join('');
String(num)] 👉 '-121'
[...String(num)] 👉 [ '-', '1', '2', '1' ]
[...String(num)].reverse() 👉 [ '1', '2', '1', '-' ]
[...String(num)].reverse().join('') 👉 '121-'

return (num == a ? true : false);
num == a 👉 -121'121-' 을 동등한지 판단
? true 👉 조건이true 이면 ? true 를 return.
: false 👉 조건이false 이면 ? false 를 return

* 간과한 포인트👇

처음에는 return값으로 (num === a ? true : false);을 주었다.
지금 변수 a 값의 타입은 스트링 타입은 string타입으로 들어오게 되는데 num은 number형태로 들어오게 되므로 비교연산자를 ===로 지정한 경우는 타입까지 확인하게 되므로 비교연산자를 ==로 하여 true false값을 구할 수 있었다!
비교연산자 더 알아보기(클릭)

* 사용한 메서드👇

✔️ [ES6] Spread Operator(전개 구문) 사용 대신split() 메서드도 사용할 수 있다
✔️ String(num): 문자열생성
✔️ reverse(): 배열의 요소를 반전
✔️ join(''): 배열의 모든 요소를 결합하여 하나의 문자열로 만듬

profile
초보 개발자!

0개의 댓글