반응형
SMALL
https://leetcode.com/problems/palindrome-number/
알고리즘 문제 막 풀기 시작하신 분들이 꼭 만나는 문제인 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 |