TIL 38. CodeKata(Reverse Number(2))

📌 문제 1

숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환하시오.

num: 숫자
return: true or false(뒤집은 모양이 num과 똑같은지 여부)

ex) num = 123 => return false (뒤집은 모양이 321이기 때문)
num = 1221 => return true (뒤집은 모양이 1221이기 때문)
num = -121 => return false (뒤집은 모양이 121-이기 때문)
num = 10 -> return false (뒤집은 모양이 01이기 때문)

💻 풀이 방식

🎈 생각하기

  • 숫자를 뒤집을 수 있는 상황을 만들기
  • -와 0도 함께 뒤집게 되는 상황도 고려하기

=> 0와 -도 뒤집을 수 있는 조건이기 때문에 값들을 string으로 만들어 각 문자열 하나하나 배열로 넣은 다음 reverse시키고 합치는 것을 구현하면 될 것 같다.

const sameReverse = num => {
	// Number type을 string type으로 변환하기
	const answer1 = num.toString();
    	// string으로 변환한 값을 문자열 단위로 쪼개서 배열에 넣기
        const answer2 = answer1.split('');
        // 배열에 넣은 문자열들을 뒤집기
        const answer3 =  answer2.reverse();
        // 뒤집은 문자열 element들을 다시 하나의 값으로 합치기(join이 빈 문자열을 받으면 하나하나 쪼개어 진다.)
        const answer4 = answer3.join('');
        //이렇게 나온 값을 Number화 시키기
        const answer5 = Number(answer4);
	// 조건을 주고 마무리하기
	return num === answer5 ? true : false;
}

🔍 코드 간략히!!

  • 위의 방법은 너무 많은 변수들을 불필요하게 선언하였다. 그래서 최대한 로직을 줄여보고자 한다.
const sameReverse = num {
	const answer1 = Number(num.toString().split('').reverse().join(''));
    	return num === answer1 ? true : false;
}
  • 이렇게 간단하게 끝낼 수 있는 로직을 항상 생각해보아야겠다!

좋은 웹페이지 즐겨찾기