코드카타 4일차

김승수·2022년 12월 22일
0

문제

숫자인 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 => {
  if (num < 0) return false;
  let num1 = num.toString();
  let splitNum = [...num1];
  let reverse = splitNum.reverse();
  let num2 = reverse.join('')
  if (num == num2) {
    return true
  } else {
    return false;
  }
}

console.log(sameReverse(12321));
module.exports = { sameReverse };

해석

  1. 애초에 음수이면 뒤집은 모양이 같을수 없기때문에 false 리턴
  2. 인자값 문자열로 변환
  3. 문자열을 한글자한글자 요소로 쪼개서 배열에 저장
  4. 뒤집기
  5. 뒤집은 요소들을 한 요소로 합치기
  6. if문을 이용하여 인자값과 비교한값이 같으면 true 리턴
  7. 그외엔 false 리턴

주의사항

비교연산자를 truthy한 "=="로 썼는데 "==="로 쓰면 배열상태에 있던 당시 주소값으로 인해 다르다고 나옴(추정),
**이게 아니라 정확히 왜 "==="가 쓰면 안되는지 아시는분 댓글 부탁드립니다..선배님들

금일 까먹은 함수

array.join(구분값)

예제

let test = ['a', 'b', 'c'];
let result1 = test.join();
 // result : a,b,c
let result2 = test.join('');
 // result : abc




profile
외부형 확장뇌

0개의 댓글