Algorithm - CodeKata #04

Sangho Moon·2020년 9월 3일
0

Algorithm

목록 보기
21/37
post-thumbnail

1. Question

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


2. Try & Answer

우선 보자마자 코드카타 2번 문제가 생각났다. '뒤집은'이라는 키워드 때문이었다.

처음에 제출한 코드는 아래와 같다.

const sameReverse = num => {
  const reverse = parseFloat(num.toString().split('').reverse().join('')) * Math.sign(num);
  if (reverse === num) {
    return true;
  } else {
    return false;
  }
}

그런데 두 개의 조건과 맞지 않는다는 창이 떴다.

문제를 다시 보니 숫자를 뒤집었을 때 -가 숫자 앞으로 오면 안되는 조건이 있었다.

그러면 여기서 뒤집은 숫자는 type이 숫자가 아니라는 말이니까 실수로 바꿔주는 parseFloat() 메서드를

삭제했다.

그랬더니 패스되었다!

ㅋㅋ 10분 컷~~~

아래는 최종 제출한 코드다.

const sameReverse = num => {
  const reverse = num.toString().split('').reverse().join('') * Math.sign(num);
  if (reverse === num) {
    return true;
  } else {
    return false;
  }
}

console.log(sameReverse(1234)); // false
console.log(sameReverse(3524)); // false
console.log(sameReverse(1221)); // true
console.log(sameReverse(4224)); // true
console.log(sameReverse(-4224)); // false
console.log(sameReverse(-4221)); // false
console.log(sameReverse(-101)); // false
 
profile
Front-end developer

0개의 댓글