상세 컨텐츠

본문 제목

[Algorithm] leetCode Palindrome Number

Coding/알고리즘

by hwlink 2022. 1. 23. 13:42

본문

Q. Palindrome Number

 

Example 1:

Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.

Example 2:

Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

 

1번 솔루션.

문자열 > 배열로 변경해주어 값을 비교하여 해결하였다.

var isPalindrome = x => {
    
  var stringToArr = String(x).split('')
  
  var returnArrToString = stringToArr.join("");
  var returnReArrToString = stringToArr.reverse().join("");
  if(returnArrToString === returnReArrToString){
    return true
  }else{
    return false
  }
};

 

2번 솔루션.

while, shift, pop을 이용한 솔루션에 있는 더욱 효율이 좋은  코드이다. 전체값을 반환 후에 비교하여야만 한다고 생각하였는데 결국 length>1까지 맨 앞과 맨뒤만 while문으로 검사해주는 식으로도 접근이 가능하다는 점이 흥미로웠다.

var isPalindrome = function(x) {
    const arr = String(x).split('');
        
    while (arr.length > 1) {
        if (arr.shift() !== arr.pop()) {
            return false;
        }
    }
    
    return true;
};

관련글 더보기