728x90
반응형
1. 문제
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 [-231, 231 - 1], then return 0.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
Example 1:
Input: x = 123
Output: 321
Example 2:
Input: x = -123
Output: -321
Example 3:
Input: x = 120
Output: 21
Constraints:
-231 <= x <= 231 - 1
2. 배운점
join은 iterable만 받고, map의 결과가 iterable이다.
list comprehension을 하기 위해서 str으로 변환한뒤, int(x)를 적용해서 list of integer를 만들 수 있다.
for문을 돌면서 list를 splice하면 다음 index에서는 splice로 줄어든 list에 for문의 로직을 적용한다.
3. 풀이
리팩토링 안함
class Solution:
def reverse(self, x: int) -> int:
is_negative = False
# 크기 체크
if x > 2**31 - 1 or x < -2**31:
return 0
# 음수 체크
if x < 0:
x = -x
is_negative = True
# 0 체크
if x == 0:
return 0
# list로 reverse
result = list(reversed([int(x) for x in str(x)]))
# 앞단에 0제외
for el in result:
if el == 0:
result = result[1:]
else:
break
result = int(''.join(map(str, result)))
if is_negative:
return -result
else:
return result
참조
https://leetcode.com/problems/reverse-integer/
728x90
반응형
'Computer Science > Algorithm' 카테고리의 다른 글
[Leetcode] 9. Palindrome Number (0) | 2023.06.07 |
---|---|
[Leetcode] 8. String to Integer (atoi) (0) | 2023.06.03 |
[LeetCode][작성중] 6. Zigzag Conversion (0) | 2022.02.05 |
[LeetCode] 3. Longest Substring Without Repeating Characters (0) | 2022.01.19 |
[LeetCode] 2. Add Two Numbers : LinkedList (0) | 2021.12.19 |