CodeKata Day4 풀이

기멜·2021년 11월 19일
0

알고리즘

목록 보기
4/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 i = new String(num);
j = [...i];
let result = j.reverse();
console.log(result)
let k='';
for(let i=0; i<result.length; i++){
  k += result[4]; //[3,2,1][0]
  // k = k + result[i] //[k안에 for문에 돌면서 한개씩 쌓인다.]
} 

if(num === Number(k)){  
  return true; 
} else {
  return false;
}
}
console.log(sameReverse(123));

코드리뷰:
먼저 new String 메서드를 let i에 넣어준다. 이러면 123이 문자형으로 바뀐다. 그 다음 i를 배열로 바꿔주는 [...i] 스프레드 연산자와 대괄호를 써서 j에 넣어준다음 .reverse() 메서드를 이용해서 반대로 바꾼다. [3,2,1]로 바뀐다. 그걸 result에 넣어준다. 그다음 빈문자열 k를 만들어주고 for문으로 i = 0 이라고 설정해주고 i는 result.length가 3이면 0,1,2까지 늘어난다. for문이 돌면서 k안에 문자열로 된 숫자가 한개씩 쌓인다. [3,2,1][0] = [3]

그리고 그게 num과 Number(k)(k는 이제 숫자형으로 바뀐다)랑 같은지 다른지 자료형까지 비교하고 123 = 321 을 비교해서 이제 다르니까 false가 나오는 식이다.

profile
프론트엔드 개발자를 꿈꾸는 도화지 위를 달리는 여자

0개의 댓글