9 . 회문 번호

정수가 주어지면 다음 x를 반환합니다.
회문 번호면 true를 그렇지 않으면 false를 반환합니다.

예 1:

입력: x = 121
출력: 참
설명: 121은 왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로 121로 읽습니다.
예 2:

입력: x = -121
출력: false
설명: 왼쪽에서 오른쪽으로 -121을 읽습니다. 오른쪽에서 왼쪽으로 121-가 됩니다. 따라서 회문이 아닙니다.
예 3:

입력: x = 10
출력: false
설명: 오른쪽에서 왼쪽으로 01을 읽습니다. 따라서 회문이 아닙니다.
 
 
문제정리
*정수는 양의 정수 음의 정수는 1,2,3,-5,-6 을 말한다.

1. 정수가 주어졌을때 x를 반환하는데, 주어진 정수가 팰린드롬 숫자면 true,  아니면 false를 반환하는 문제이다.
단 조건이 있다.
- x가 음의 정수일때도 생각해야한다. 음의 정수일때는 뒤집었을때 무조건 false가 나온다.

내가 생각한 풀이방법

1. x 정수를 뒤집은 숫자로 만들어준다.
2. 기존에 x 와 위에서 만든 x를 비교해서 같으면 true, 다르면 fasle를 반환해준다.
 
 

작성코드📍

      function isPalindrome(x) {
        const resultNum = x.toString().split("").reverse().join("");
        //x를 문자열로 변환 후 배열로 만들고, 배열을 뒤집고, 다시 문자열로 만든다.
        if (x === Number(resultNum)) {
          //회문문자인지 판별하기위해, 조건문을 사용
          //기존의 x와 지지고볶은 resultNum이 같으면 true
          return true;
        }
        if (x !== Number(resultNum)) {
          //x와 result가 다르면 false
          return false;
        }
        if (x < 0) {
          //x가 음수이면 false
          return false;
        }
      }

      let x = 1211;
      console.log(isPalindrome(x));

 

 

잘못된 코드🎈

  function isPalindrome(x) {
    const resultNum = x.toString().split('').reverse().join('');

    if(x === Number(resultNum)) {
      return true;
    }else {
      return false;
    }

    if(x < 0) {
      return false;
    }
  }

코드에서의 문제점은 

if(x < 0) 음수 판별을 마지막에 했다는게 문제입니다.

이 코드는 x === resultNum과 무관한 코드입니다.

따라서, 이 코드를 마지막에 작성하면, x === resultNum일 때 결과값을 반환한 후 함수가 종료되기 때문에,

x < 0일 때 해당 코드가 실행되지 않고 함수가 종료됩니다.

 

더 간결해진 변경된 코드 🎶

  function isPalindrome(x) {
    if(x < 0) {
     return flase;
   }
   
   const resultNum = x.toString().split('').reverse().join('');

   if(x === Number(resultNum)) {
     return true;
   }else {
     return false;
   }
 }

 

 

 

'알고리즘 > leetCode' 카테고리의 다른 글

[leetcode] Remove Duplicates from Sorted Array  (0) 2023.03.12
[leetCode] Valid Parentheses  (0) 2023.03.09
[leetCode] Longest Common Prefix  (0) 2023.03.07
[leetcode] roman to integer  (0) 2023.02.27
[leetcode] Two Sum  (0) 2023.02.27
복사했습니다!