CodeKata. 뒤집어도 같은 숫자

ha ju·2021년 4월 29일
0

CodeKata.

🧐 문제

숫자인 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 => {
  const strNum = String(num);
  const strNumArr = strNum.split("");
  const reverseNum = strNumArr.reverse();
  const numJoin = reverseNum.join("");
  if((strNum[0] === '-') || (strNum !== numJoin)){
     return false;
     } else if(strNum === numJoin) {
       return true;
     }
}
  • 접근 방법
    CodeKata 02. 에서 풀었던 문제와 비슷하게 숫자를 문자열로 바꾸어서 각 자릿수별로 배열에 담는 방법으로 접근했다.
    1) 숫자를 문자열로 바꾸어주고
    '1234'
const strNum = String(num);

2) 각각 자릿수 별 숫자로 나누어 배열로 만들어준뒤,
[ '1', '2', '3', '4' ]

const strNumArr = strNum.split("");

3) 기존의 배열 내 데이터의 순서를 반대로 받아오는 배열을 만들어주고,
[ '4', '3', '2', '1' ]

const reverseNum = strNumArr.reverse();

4) 배열 내 각 데이터를 하나의 문자열로 다시 합친 뒤,
'4321'

const numJoin = reverseNum.join("");

5) 변수 strNum와 변수 numJoin가 같은지 여부에 따라 true or false를 반환하는 if 문을 써준다.
- 단, 인자로 받은 num이 음수일 경우 뒤집으면 무조건 마이너스(-) 부호가 맨 뒤로 가기 때문에
뒤집기 전과 후가 절대 같아질 수 없으므로 false가 반환되는 조건문에 해당 조건을 추가해주었다.

if((strNum[0] === '-') || (strNum !== numJoin)){
  return false;
  } else if(strNum === numJoin) {
    return true;
  }

⭐사용 문법 정리

-
String()괄호 안의 숫자 -> 문자열로 변환

배열 관련 메서드
split("") 메서드괄호 안의 요소를 기준으로 문자열 -> 배열로 변환
reverse() 메서드배열내 데이터 순서를 반대로 변환
join("") 메서드배열의 데이터들을 괄호 안의 요소를 사이에 두고 합침
reverse() 메서드배열내 데이터 순서를 반대로 변환

0개의 댓글