[CodeKata] SameReverse

5ERN·2022년 12월 24일
0

CodeKata

목록 보기
1/2

> 조건

숫자인 num을 인자로 넘겨주면, 뒤집은 모양새가 같은지 boolean 형식으로 나타내라!

ex)
num = 1567, False!
=> 1567 != 7651
ex2)
num = 13431, True!
=> 13431 = 13431

const sameReverse = num => {
// 내용 작성
}

> 해법

우선 num을 문자열로 변환하기 위하여 String()함수를 이용해주자
이어서 str이란 변수를 선언하여 이에 할당하자

const str = String(num);

그 다음 문자열로 이루어진 str을 method를 사용하여 '쪼개고(.split)', 순서를 '뒤집어(.reverse)', 다시 '합쳐주자(.join)'
tip) 이때 메소드는 이어서 작성함으로서 연속으로 실행이 가능하다

const join = str.split('').reverse().join('');

일반적이라면 여기서 같은 값인지 비교하여 boolean값을 출력하면 되지만,
우리는 num이 '-'값을 포함하고 있는지도 고려해야 한다!

if) num = -1231
우리는 이를 문자열로 변환 후 뒤집었기에 결과값은 '-1321'이 아닌 '1321-'이 되어버리기 때문!

So, 우리는 문자열로 변환한 str 값에 대해서

맨 앞의 순서로 오는것이 '-' 일 경우, 혹은! 뒤집은 값인 join이 원래값인 str과 동등하지 않을 경우(!==)에는
-> 'False'를 출력할 수 있도록 하고,

join 값과 str 값이 동일한 경우, 즉 num을 뒤집은 값이 같을 경우에는
-> 'True'를 출력할 수 있도록 작성해보자!

if ((str[0] === '-' || (str !== join)) { // 맨 앞이 '-' or 두 값이 같지 않다면,
return false;
} else if (str === join) { // 두 값이 같다면,
return true; 
}
}

이를 종합해서 코드를 작성해보자

const sameReverse = num => {
  const str = String(num); //num을 String()함수를 이용하여 문자열로 변환
  const join = str.split('').reverse().join('');
  //문자열로 변환한 num을 쪼개고 돌려서 합친다
  if ((str[0] === '-') || (str !== join)) {
    //배열 맨 앞이 '-'이면, 혹은(||) 나열이 뒤집은것이랑 같으면!
    return false;
    // 'false' 출력
  } else if (str === join) {
    //나열이 뒤집은것이랑 같으면!
    return true;
    //true 출력!
  }
}

let num = 원하는 값 대입;
console.log(sameReverse(num));

profile
응애개발자

0개의 댓글