LeetCode 7. Reverse Integer (Easy)
정수를 뒤집어서 반환하는 코드를 짜야한다.
단, 반환하는 값이 int로 표현 가능한 범위 내를 벗어나는 경우 0을 출력한다.
문제 풀이
숫자가 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
'온라인 코딩 테스트 문제 풀이 > LeetCode 문제 풀이' 카테고리의 다른 글
Python으로 푸는 LeetCode 13. Roman to Integer (Easy) (0) | 2019.04.02 |
---|---|
Python으로 푸는 LeetCode 9. Palindrome Number(Easy) (0) | 2019.04.01 |
Python으로 푸는 LeetCode 3. Longest Substring Without Repeating Characters (Medium) (0) | 2019.03.28 |
Python으로 푸는 LeetCode 2. Add Two Numbers (0) | 2019.03.27 |