티스토리 뷰

 

안녕하세요. 죠쵸입니다.

LeetCode 07.Two SumReverse Integer 문제를 풀고, 문제를 통해서 알고리즘 및 기초 Python 문법들을 알아보겠습니다.

https://leetcode.com/problems/reverse-integer

 

Reverse Integer - 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

 

#LeetCode 07.Reverse Integer Problem (Description)

 

문제는 비교적 간단합니다. 32 비트 정수(+/-부호 포함)가 주어지면 해당 정수를 Reverse 하여 반환하는 문제입니다.

단 변환된 정수가 32 비트 정수(+/-부호 포함)의 범주 밖으로 넘어갔을 때, 0 값을 반환해야 합니다. 

 

#LeetCode 07.Reverse Integer Problem (Solution)

 

class Solution:
    def reverse(self, x: int) -> int:
        ret_value = int(''.join(letter for letter in list((str(abs(x))))[::-1]))
        if x < 0:
            ret_value = ret_value*(-1)
        if ((-(2**31)) > ret_value) or (ret_value > (2**31)-1):
            return 0
        return ret_value

 

전달된 정수의 절대값을 abs() 함수를 통해서 구하고, 그 값을 str() 함수를 이용하여 문자열로 변환합니다. 그리고 list() 함수를 통해서 문자열의 각 문자를 list에 담습니다. 그리고 slicing 기법을 통해서 리스트에 담긴 문자를 reverse 하고 각 문자를 join() 함수로 문자열로 변경합니다.

마지막으로 변경된 문자열을 int() 함수로 정수로 변환하고, 변환된 값을 입력된 정수의 부호에 맞춰서 (+/-)를 적용하면 문제에서 요구하는 32 비트 정수의 Reverse를 완료하게 됩니다.

Reverse 된 정수가 32 비트 정수(+/-부호포함) 범주 안에 있는지 확인 후, 범주 밖에 있을 경우 Reverse 된 정수가 아닌 0을 반환하게 합니다.

기초적인 함수들을 잘 사용할 줄 알면, 비교적 간단한 문제인것 같습니다. 최상/최적은 아니지만 LeetCode에서 Accept 된 Solution입니다. 해당 코드를 참조하셔서 더 좋은 방법으로 개선해 보시면 좋을 것 같습니다. 그리고 개선 된 코드를 공유 해 주시면 더욱 감사 드립니다. 같이 배우고 성장해요~ :)

 

방문해 주셔서 감사합니다. 여러분의 공감하기(), 댓글과 구독은 저에게 힘이 됩니다.

이상으로 죠쵸였습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함