본문 바로가기
Programming/Python

[LeetCode] 9. Palindrome Number

by 왕밤빵도라에몽 2025. 5. 5.
728x90

기본 아이디어

  • 덱(deque)으로 양쪽에서 하나씩 빼도 되고
  • 리스트로 양쪽 인덱스 접근해도 되겠다

from collections import deque

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if x < 0:
            return False
        nums = str(x)
        queue = deque(nums)
        while len(queue) > 1:
            if queue.popleft() != queue.pop():
                return False
        return True
  • 음수는 팰린드롬 될 수 없어서 미리 쳐내줄 수 있음

인덱스

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if x < 0:
            return False
        nums = str(x)
        l, r = 0, len(nums) - 1
        while r > l:
            if nums[l] != nums[r]:
                return False
            r -= 1
            l += 1
        return True
  • 문자열 변환후 인덱싱보다 덱이 실제로 더 빨랐다. (이론적으로는 인덱스가 빠름)

  • ㄹㅇ 최적화버전은 문자열 변환없이 숫자 그대로 자릿수로 비교하는거다. (난 이건 코테때 헷갈려서 못 할 듯)

  • 꺼진 팰린드롬도 다시 보자

  • 라코테 때는 이것도.. ... .... ................................

728x90

'Programming > Python' 카테고리의 다른 글

[LeetCode] 1. Two Sum  (0) 2025.05.04
[프로그래머스] 의상  (0) 2025.04.30
[프로그래머스] H-Index  (0) 2025.04.14
[프로그래머스] 네트워크  (0) 2025.04.13
[프로그래머스] 모음사전  (0) 2025.04.12