본문 바로가기

알고리즘 문제 풀이/LeetCode

9. Palindrome Number

반응형
SMALL

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

알고리즘 문제 막 풀기 시작하신 분들이 꼭 만나는 문제인 Palindrome 문제입니다. 모 기업 코딩테스트에서도 나온 문제죠. 작년 생각이 새록새록

 

이번 문제는 '정수'로 숫자가 주어집니다. 이를 Palindrome인지 아닌지 판단하는데, 단 !! 조건이 있습니다. 이를 String으로 Converting하지 말고 오로지 정수 개념을 이용해서 문제를 풀어보는 겁니다. 난이도가 사알짝 올랐죠?

 

아래는 제 풀이 방법입니다.

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        # negative number case
        if x < 0:
            return False
        
        # get high
        high = 1
        while high <= x:
            high *= 10
        high /= 10
        
        low = 10
        
        # Palindrome Check
        while 1:
            if high == 0 or high == 1:
                return True
            elif x / high != x % low:
                return False
            else:
                x %= high
                x /= 10
                high /= 100

결국은 양극단의 정수가 같은지 다른지를 판단하는 문제, 양 극단을 비교해보도록 합시다. 저는 high / low로 나눈 몫, 나머지를 비교했고 high와 x값을 변화시키면서 연산을 진행했습니다. 음수 예외처리도 진행했고요.

간단하쥬?


너무 쉽습니다. 난이도 좀 어려운 Easy로 몸 풀고 다음부터 바로 Medium으로 달려갑시다.

 

9. Palindrome Number 였습니다. ^_^

반응형
LIST

'알고리즘 문제 풀이 > LeetCode' 카테고리의 다른 글

414. Third Maximum Number  (0) 2020.04.15
859. Buddy Strings  (0) 2020.04.15
665. Non-decreasing Array  (0) 2020.04.14
7. Reverse Integer  (0) 2020.04.12
1. Two Sum  (1) 2020.04.12