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
문제 소개
입력한 integer x값이 palindrome integer면 true를 반환한다.
palindrome은 뒤에서부터 읽어도 같은 숫자를 의미한다.
- 예를 들어, 121은 palindrome인 반면, 123은 아니다.
해결과정
가장 먼저, 음수값은 항상 false가 반환되므로 x가 0 미만인 경우와 이상인 경우로 나눴다.
처음에는 reverse값 저장변수를 설정하는 방법이 아닌, x값을 10으로 나눈 나머지값을 리스트에 저장해서 비교하려 했다.
for문을 두 번 돌려야 하기 때문에 비효율의 끝판왕이라고 볼 수 있지😌,,
근데 코드를 짜다보니 변수만 설정해주면 리스트를 굳이 사용할 필요가 없더라,,
(이걸 처음부터 생각 못하다니 정말 코딩 안한지 오래되었나보다..^^ 열심히 하자.)
그렇게 아래와 같은 코드를 짰고, 제출 성공했다 ✨
[ 시간복잡도: O(n), 공간복잡도: O(1) ]
>> 코드
class Solution(object):
def isPalindrome(self, x):
if x<0: return False
else:
origin = x
rev = 0
while (x!=0):
rev = rev*10 + x%10
x//=10
if origin == rev: return True
else: return False
>> string으로 변환한 코드
class Solution(object):
def isPalindrome(self, x):
if x<0: return False
elif str(x)[::-1] == str(x): return True
... string으로 변환하면 훨씬 간단하다 🌝
'알고리즘 > 문제풀이' 카테고리의 다른 글
[BOJ][Python] #13164 행복 유치원 (0) | 2022.07.24 |
---|---|
[BOJ][Python] #1543 문서 검색 (0) | 2022.05.18 |
[BOJ][Python] #16953 A → B (0) | 2022.05.17 |
[BOJ][Python] #1946 신입사원 (0) | 2022.05.16 |
[LeetCode] #35 Search Insert Position (0) | 2022.03.17 |
댓글