새소식

Programming/1 Day 1 Commit

[LeetCode] 9. Palindrome Number (python)

  • -
 

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

Problem

 

오늘의 문제는 Palinedrome Number을 판별하는 코드를 작성하는 것이다. 

Palinedrome 숫자란 121처럼 앞뒤를 바꿔도 똑같은 (전화번호 아님) 숫자를 말한다. 

 

이 문제에서 주의해야 할 것은 음의 정수가 포함된다는 것이다! -121을 바꿔면 121-이므로 Palinedrome 숫자가 아니다. (설명도 적어야 한다.)

 

First Try: Wrong Answer

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if x < 0 : return False
        else: 
            ori = x
            reverse = 0
            while x:
                remainder = x % 10
                x = x // 10
                reverse = reverse * 10 + remainder
                
                if reverse == ori: return True
                else : return False

이런 식으로 접근하려 했지만 121을 넣었을 때 False를 반환한다. 

 

Second Try : Accepted but 0

class Solution:
    def isPalindrome(self, x: int) -> bool:
        ans = None
        if x < 0 : ans = False
        else: 
            ori = x
            reverse = 0
            while x:
                remainder = x % 10
                x = x // 10
                reverse = reverse * 10 + remainder
                
                if reverse == ori: ans = True
                else : ans = False
            return ans

이런 식으로 bool 값을 선언한 뒤 밖에서 리턴해주면 정수에서는 돌아가지만 0을 제대로 반환해주지 않는 문제가 발생한다. 

0을 추가해서 해결하면 되긴 한다. 

하지만 다른 방법으로 푸는 것을 찾아보았고 정말 간단한 파이썬 내장 함수가 있었다. 

 

Solution

class Solution:
    def isPalindrome(self, x: int) -> bool:
        x = list(str(x))
        
        return x == x[::-1]

이 얼마나 쉽고 간단한 코드인가! 이래서 사람이 다양한 문법을 써봐야 한다. 

x[::-1]을 사용해봤으나 이는 리스트에서만 작동하여 사용할 수 없었다.

방법은 처음에 x를 str()으로 문자열로 만든다음에 list형으로 바꿔버리는 것이다. 

 

세 번째 시도 끝에 성공 ! 

 

 

GitHub - Park-Minjoo/CODINGINTERVIEW_PRACTICE: 1 Day 1 Problem since 2022.4.7

1 Day 1 Problem since 2022.4.7. Contribute to Park-Minjoo/CODINGINTERVIEW_PRACTICE development by creating an account on GitHub.

github.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.