Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- Kotlin
- golang
- docker
- k8s
- LeetCode
- 파이썬
- Observer Pattern
- mobaXTerm
- Programmers
- kubernetes
- easy
- GCP
- 피보나치
- 알고리즘
- Top-down
- GKE
- 백준
- 그리디
- KAKAO
- Python
- github
- go
- java
- Singleton Pattern
- Dynamic Programming
- Backjoon
- Codility
- BubbleSort
- cpu scheduling
Archives
- Today
- Total
To Be Developer
[LeetCode] 7. Reverse Integer 본문
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
# 문제 설명
'''
input 으로 [-2^31, 2^31-1] 범위의 정수를 받는데
이 수를 거꾸로 뒤집어 표현하라.
단, 음수는 '-' 가 먼저 보이도록 하고,
input 범위를 초과할 시 0 을 return 하라.
0이 맨 앞에 나올 경우 skip.. 하고 다음 숫자부터 표현.
'''
rst = "" # 결과를 return할 변수
xStr = str(x) # input Data를 String 으로 여러번 변환하지 않기 위해 변수 선언
ln = len(xStr) # x의 길이
# ln-1 부터 0 번까지의 index를 1만큼 감소시키기 위한 for 문
for i in range(ln-1, -1, -1):
# 만약 맨 뒤의 숫자가 0 인경우 continue
if i==ln-1 and str(x)[i]==0:
continue
# 맨 마지막 글자가 - 인경우 맨 앞으로 붙여 rst에 붙임
# 그 다음 break를 하여 반복문을 빠져나감
if i==0 and str(x)[0]=="-":
rst = xStr[0]+rst
break
# 뒤에서 부터 차례로 rst에 붙임
rst += xStr[i]
# 문자열을 다시 Integer 형태로 변환
rst = int(rst)
# 조건 범위에 부적합하면 0, 적합하다면 rst를 return 한다.
if rst <= 2**31-1 and rst >= -2**31:
return rst
else:
return 0
if __name__ == "__main__":
x = 123
sl = Solution().reverse(x)
print(sl)
'알고리즘 > LeetCode' 카테고리의 다른 글
| [LeetCode] 225. Implement Stack using Queues (0) | 2019.03.13 |
|---|---|
| [LeetCode] 189. Rotate Array.py (0) | 2019.03.08 |
| [LeetCode] Two Sum ll - Input array is sorted (0) | 2019.03.05 |
| [LeetCode] 566. Reshape the Matrix (0) | 2019.03.04 |
| [LeetCode] 349. InterSection of Two Arrays (0) | 2019.03.03 |