- 문제 링크: https://leetcode.com/problems/reverse-integer/

 

Easy 난이도 문제인데요, 오버플로우도 신경써줘야 하는 좀 귀찮은 문제입니다.

주어진 정수를 뒤집어야 하는데, 음수인 경우 하이픈은 빼고 뒤집습니다. 뒤집었을 때 Int 범위 [-2^31, 2^31-1]를 초과하면 0을 반환합니다.

파이썬은 강력한 형변환과 문자열 슬라이싱이 있으니 적당히 사용해서 풀면 됩니다

class Solution(object):
    def reverse(self, x):
        def in_range(num):
            return -2**31 <= num <= 2**31-1

        if x > 0:
            num = int(str(x)[::-1])
            if in_range(num):
                return str(num)
        elif x < 0:
            num = int(str(x)[1:][::-1])
            if in_range(num):
                return '-' + str(num)
        return '0'

이건 제 코드인데 좀 잘 짠건 아닌 듯 하네요.... 파이썬 뉴비가 짠 코드니 이해부탁드립니다

어쨌거나 이런 느낌으로 푸시면 되겠습니다

반응형