본문으로 바로가기

LeetCode 7. Reverse Integer (Easy)

정수를 뒤집어서 반환하는 코드를 짜야한다.

단, 반환하는 값이 int로 표현 가능한 범위 내를 벗어나는 경우 0을 출력한다.

LeetCode에서 푼 문제 리스트 보기

LeetCode에서 문제 보기

github에서 코드 보기

문제 풀이

숫자가 0보다 작으면 마지막에 -1을 곱해주기 위해서 부호를 파악해둔 다음, 파이썬의 abs() 메소드를 활용해 절대값을 구한 후 x에 다시 저장해준다. 숫자를 뒤집기 위해서 숫자 x를 string으로 변환해준다. 변환한 문자열 x를 처음부터 끝까지 탐색하면서 각 자릿수를 1의 자리, 10의 자리, 100의 자리....n의 자리로 곱해 뒤집은 절댓값 숫자를 만들어준다. 맨 마지막에 처음 x가 음수였다면 -1을 곱하여 음수로 만들어주고 해당 결과 값이 주어진 숫자의 범위 안에 들어가는지 판단하여 0을 반환할지 결정한다.

파이썬 코드

class Solution:
    def reverse(self, x: int) -> int:
        if x == 0:
            return 0


        is_Negative = False
        # 음수
        if x < 0:
            is_Negative = True

        x = str(abs(x))
        i = 1
        result = 0
        for ch in x:
            result += (int(ch)*i)
            i *= 10

        if is_Negative:
            result *= -1

        max_size = pow(2,31)
        if -max_size < result < max_size - 1:
            return result
        else:
            return 0


solution = Solution()
solution.reverse(123) # 321
solution.reverse(-123) # -321
solution.reverse(120) # 21

 # LeetCode 7. Reverse Integer (Easy) python #파이썬 leetcode 7