Leetcode#1_Reverse Integer_02w03 by SOMJANG
솜씨좋은장씨
·2020. 2. 20. 01:43
Given a 32-bit signed integer, reverse digits of an integer.
Example 1
Input: 123
Output: 321
Example 2
Input: -123
Output: -321
Example 3
Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
Solution by SOMJANG
class Solution:
def reverse(self, input_num: int) -> int:
input_num_str = str(input_num)
input_num_str = list(input_num_str)
if input_num_str[0] == '-':
input_num_str_new = input_num_str[1:]
input_num_str_new = reversed(input_num_str_new)
input_num_str_new = ''.join(input_num_str_new)
answer = '-' + input_num_str_new
else:
input_num_str = reversed(input_num_str)
answer = ''.join(input_num_str)
if int(answer) > 2 ** 31 or int(answer) < (-2) ** 31:
return 0
else:
return int(answer)
Soultion 풀이
입력 받은 숫자를 string 으로 변환하고 비교가 쉽도록 list로 변환
list로 변환한 값들 중 가장 첫번째 값이 '-' 일 경우
> 가장 첫 번째 '-'를 제외한 나머지를 따로 추출
> 그 추출한 값을 reversed 메서드를 통해 반대로 정렬함
> 이를 다시 str로 합쳐줌
> 그 앞에 '-'를 다시 붙여줌
list로 변환한 값들 중 가장 첫번째 값이 '-'가 아닐 경우
> reversed 메서드를 통해 반대로 정렬
> 이를 다시 str로 합쳐줌
이렇게 위에서 만들어진 answer 문자열을 int(answer) 를 통해 정수형으로 형 변환을 실시해주고
이 값이 -2^31 보다 작거나 2^31보다 클 경우
> 0을 return 하고
그렇지 않을 경우
> int(answer)를 return 하도록 함
'우리가 공부한 것 들 > 알고리즘' 카테고리의 다른 글
Leetcode#4_ZigZag Convention_05wk02 by SOMJANG (0) | 2020.05.13 |
---|---|
Leetcode#3_Longest Substring Without Repeating Characters _05wk01 by SOMJANG (0) | 2020.05.11 |
Leetcode#1_02w03 Code Review 결과 정리 (0) | 2020.02.22 |
Leetcode#1_Add Two Numbers_02w03 by SOMJANG (0) | 2020.02.20 |