[LeetCode] Reverse Integer

동스토리 ㅣ 2021. 8. 6. 16:58

반응형

안녕하세요.

 

LeetCode 7번 Reverse Integer 문제풀이 하겠습니다.

 

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

[문제]

 

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-2**31, 2**31 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

 

-> 정수를 역순으로 출력하는 문제

 

[TestCase]

 

[코드]

class Solution:
    def reverse(self, x: int) -> int:
    
        x_list = list(str(x))

        if x_list[0] =='-':
            x_list = x_list[1:]
            x_list.reverse()
            x = '-' + ''.join(x_list)
        else:
            x_list.reverse()
            x = ''.join(x_list)
                
        if int(x) > 2**31 or int(x) < -2 **31:
            return 0
        else:
            return int(x)

 

 

[해설]

 

- 정수를 문자열 리스트로 만든다.

- 리스트에 첫 번째 인덱스가 마이너스(-) 일 경우 두 번째 인덱스부터 리스트를 다시 만들어 줍니다.

 

Why?

리스트를 역순으로 만드는데 -123일 경우 321-가 되므로

 

- reverse()를 사용해서 리스트를 역순으로 만든다.

-  이후 최종적으로, join()을 사용해서 리스트를 하나로 연결해준 후 int형으로 return 한다.

 

감사합니다.

반응형

'Development > Algorithm' 카테고리의 다른 글

[LeetCode] Roman to Integer  (0) 2021.08.08
[LeetCode] Palindrome Number  (0) 2021.08.07
[LeetCode] Add Two Numbers  (0) 2021.08.04
[LeetCode] Two Sum  (0) 2021.08.02
[BOJ] 1012. 유기농 배추  (0) 2020.10.27