[LeetCode] 9. Palindrome Number (Python)

2025. 1. 30. 19:50·코딩 테스트
728x90

Problem

https://leetcode.com/problems/palindrome-number/description/?envType=study-plan-v2&envId=top-interview-150

 

Solution

array

정수 x 가 주어지면 앞뒤 거꾸로 바꾸어도 동일한 숫자가되는지 체크하는 문제.

stack 을 사용하면되겠다고 생각했다.

 

몰랐는데 파이썬에서 string 을 거꾸로 뒤집는 방법이있었다 ㄷㄷ

아래가 바로 그 코드

s = str(x)
return s == s[::-1]

 

다른 방법은 10으로 나눈 나머지를 tmp 변수에 * 10 하며서 더해준다.

오리지널 x 는 10으로 나눈 몫으로 업데이트 해준다.

class Solution:
    def isPalindrome(self, x: int) -> bool:
        if x < 0:
            return False
        
        rev = 0
        num = x
        while num > 0:
            rev = rev * 10 + num % 10
            num //= 10
        
        return x == rev

 

이렇게 풀어야 시간복잡도 O(N), 공간복잡도 O(1)로 더 효율적으로 풀 수 있다.

  • 시간복잡도: O(N) (자릿수를 뒤집는 데 O(N))
  • 공간복잡도: O(1) (추가 리스트나 문자열 저장 없이 숫자 연산만 사용)

Code

class Solution:
    def isPalindrome(self, x: int) -> bool:
        answer = True
        if x < 0:
            return False
        
        strX = str(x)
        st = []
        if len(strX)%2 == 0:
            for i in range(len(strX)):
                if i < len(strX)/2:
                    st.append(strX[i])
                else:
                    if st.pop() != strX[i]:
                        return False
        else:
            for i in range(len(strX)):
                if i < len(strX)//2:
                    st.append(strX[i])
                else:
                    if i == len(strX)//2:
                        continue
                    else:
                        if st.pop() != strX[i]:
                            return False
        return answer

 

Complexity

Time Complexity

stack에 문자열을 저장하므로 O(N)

 

Space Complexity

string 변수와 stack 에 문자열을 저장하므로 O(N)

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'코딩 테스트' 카테고리의 다른 글

[LeetCode] 125.Valid Palindrome (Python)  (0) 2025.01.31
[LeetCode] 1. Two Sum (Python)  (0) 2025.01.30
[LeetCode] 290.Word Pattern (Python)  (0) 2025.01.28
[LeetCode] 205. Isomorphic String (Python)  (0) 2025.01.28
[LeetCode] 202. Happy Number (Python)  (0) 2025.01.27
'코딩 테스트' 카테고리의 다른 글
  • [LeetCode] 125.Valid Palindrome (Python)
  • [LeetCode] 1. Two Sum (Python)
  • [LeetCode] 290.Word Pattern (Python)
  • [LeetCode] 205. Isomorphic String (Python)
zoodi
zoodi
IT/개발 관련 지식을 기록하는 블로그입니다.
  • zoodi
    오늘의 기록
    zoodi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 후기
        • 컨퍼런스
        • 일상리뷰
      • 금융경제
        • 뉴스
        • 금융IT용어
        • 경제 및 부동산
      • 코딩 테스트
      • 스터디
        • JAVA
        • Kotlin
        • Spring
        • React, Nextjs
        • 인공지능 AI
        • Cloud & k8s
        • Kafka
        • Database
        • Network
        • Algorithm
        • Hadoop
        • LINUX
        • R Programming
        • 기타 (소공, 보안)
      • 도서
      • 기타
  • 블로그 메뉴

    • 홈
    • 스터디
    • 금융경제
    • 후기
    • 기타
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네트워크
    java
    스프링
    알고리즘
    CodingTest
    kafka
    코딩테스트
    이분탐색
    카카오코테
    MySQL
    자바
    코딩
    리트코드
    codility
    자료구조
    코테공부
    프로그래머스
    쿠버네티스
    코딜리티
    C++
    Spring
    스프링부트
    springboot
    pythoncodingtest
    금융용어
    db
    LeetCode
    Python
    Kotlin
    코테
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
zoodi
[LeetCode] 9. Palindrome Number (Python)
상단으로

티스토리툴바