Posis

[LeetCode][JavaScript] 9. Palindrome Number 본문

알고리즘/leetcode

[LeetCode][JavaScript] 9. Palindrome Number

CooNiHong 2021. 8. 7. 10:15

[LeetCode][JavaScript] 9. Palindrome Number

문제 출처: https://leetcode.com/problems/palindrome-number/

 

Palindrome Number - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제 설명

숫자를 뒤집고 Input의 값과 동일하면 true, 틀리다면 false

단, 음수일 경우 무조건 false입니다.

 

[직접 푼 코드]

var isPalindrome = function (x) {
  const palindromeNumber = x.toString().split('').reverse().join('');
  return (x == palindromeNumber ? true : false);
};

 

[문제 풀이]

JavaScript 메서드를 활용해 Input값을 뒤집은 후에 reverse 한 숫자와 Input값이 같은지 비교해서 true와 false를 반환해준다.

 

[==과 ===]

보통 JavaScript에서는 비교할 때 === 3개를 사용해서 타입까지 비교하지만 이번 문제에서는 숫자를 뒤집을 때 string 타입으로 변환하기 때문에 ==으로 비교해야 알고리즘에 통과할 수 있다.

 

[글을 쓰면서 생각 난점]

문제 설명에도 있듯이 음수일 경우 무조건 false를 반환하게 된다.

이때 생각난 게 첫 줄에 if (x < 0) return false를 하게 되면 Runtime 측에서 좀 더 빠르지 않을까 라는 생각이 들어 실험해봤다.

사진 204ms가 if 절을 추가한 코드이고 188ms가 원래 코드 속도입니다.

오히려 코드가 더 길어져서 Runtime이 길어진 걸까?라는 의문도 생기지만 아직 내 실력으로는 판단할 수 없는 범위인 거 같습니다. 좀 더 실력을 쌓은 후 JavaScript의 깊숙한 이론까지 알게 되면 깨닫지 않을까 생각합니다.


알고리즘 스터디: https://github.com/ROUTINE-STUDY/Algorithm

 

GitHub - ROUTINE-STUDY/Algorithm: 초보 알고리즘 스터디 / 누구나 참여 가능

초보 알고리즘 스터디 / 누구나 참여 가능 :runner:. Contribute to ROUTINE-STUDY/Algorithm development by creating an account on GitHub.

github.com

누구나 참여 가능한 알고리즘 스터디입니다.
알고리즘뿐만 아니라 개발을 하면서 겪은 이슈, 이론을 정리하는 Routine-Study를 운영 중입니다.
728x90