반응형
https://leetcode.com/problems/reverse-integer/
64비트 정수와 오버플로우가 허용되지 않는 제약이 걸려있었습니다.
역순으로 뒤집어가면서 새로운 수를 추가하게 될 때 오버플로우가 발생하는지 확인해주었습니다.
class Solution {
public:
const int MAX = 214748364;
int reverse(int x) {
if(x < -8463847412 || x > 7463847412) return 0;
int result = 0;
while(x) {
int val = x % 10;
if(result >= MAX && val >= 7 || result > MAX) return 0;
if(result <= -MAX && val >= 8 || result < -MAX) return 0;
result = result * 10 + val;
x /= 10;
}
return result;
}
};
반응형
'Algorithm' 카테고리의 다른 글
LeetCode 20 : Valid Parentheses (0) | 2022.03.13 |
---|---|
LeetCode 8 : String to Integer (atoi) (0) | 2022.03.12 |
LeetCode 6 : Zigzag Conversion (0) | 2022.03.06 |
백준 15942 : Thinking Heap (0) | 2022.02.12 |
LeetCode 128 : Longest Consecutive Sequence (0) | 2022.02.06 |