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 |