숫자 입력값과 뒤집은 입력값이 같은지 판단하기

DongHee Kim·2021년 8월 20일
1

Algorithm

목록 보기
10/12
post-thumbnail

문제

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


풀이

사고의 흐름

Step.1 : 숫자 num을 뒤집기

지난 코드카타 문제에서 비슷한 작업을 했던 적이 있어 풀이를 비교적 빠르게 떠올릴 수 있었다.

1) 숫자인 num을 string으로 바꾼 뒤 split("")으로 각 자릿수마다 나누고,
reverse로 순서를 반대로 변경한 배열 reverseArr 만들기

2) reverseArr의 모든 요소를 문자열 형태로 결합한 reverseNum 만들기

const sameReverse = num => {
  let reverseArr = num.toString().split("").reverse();
  let reverseNum = reverseArr.join("")
  
/* - - - - - 위까지 step.1 - - - - - */
  
//  if(num.toString() === reverseNum) {
//    return true;
//  } else {
//    return false;
//  }
}

Step.2 : num과 뒤집혀진 num을 비교하기

여기서 문제가 있는데, num은 숫자이고 reverseNum은 string이다.
정확한 값 비교(===)를 하고 싶어서 toString()으로 숫자인 num을 string으로 변환해 일치하면 true, 불일치하면 false를 반환하는 조건문을 만들었다.

const sameReverse = num => {
  let reverseArr = num.toString().split("").reverse();
  let reverseNum = reverseArr.join("")
  
  if(num.toString() === reverseNum) {
    return true;
  } else {
    return false;
  }
}

step.1 과 step.2를 병합하면, 위와 같이 정답 코드 완성! 🎉


느낀 점

문제를 풀 때마다 블로깅을 하며 착실히 복습했더니, 저번에 풀었던 문제와 겹치는 부분이 있는 이번 문제는 상대적으로 짧은 시간내에 풀 수 있었다.
문제를 푸는데에서 그치지말고 원리 파악 후 정리하는 연습 킵고잉 〰🏃‍♀️

profile
일상의 성실이 자존감을 만드는 성취주의자

0개의 댓글