🎁 문제 링크
https://leetcode.com/problems/reverse-integer/description/
🎁 문제 설명
- 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).
- 부호 있는 32비트 정수가 주어지면 숫자가 반전된 상태로x 반환됩니다 . 반전으로 인해 값이 부호 있는 32비트 정수 범위를 벗어나 면 를 반환합니다 .xx[-231, 231 - 1]0 환경에서 64비트 정수(부호 있는 또는 부호 없는) 저장을 허용하지 않는다고 가정합니다.
🎁 입출력 예시
🎁 코드
class Solution {
public int reverse(int x) {
long reverseIdx = 0;
int remain = 0;
while(x != 0){
remain = x % 10;
reverseIdx = (reverseIdx * 10) + remain;
x /= 10;
}
if(reverseIdx > Integer.MAX_VALUE || reverseIdx < Integer.MIN_VALUE){
return 0;
}
if(x < 0){
return (int)(reverseIdx * - 1);
}
return (int)reverseIdx;
}
}
🎁 코드 설명
1) '반전으로 인해 값이 부호 있는 32비트 정수 범위' 를 확인해야하기 때문에 long으로 선언
2) while문을 돌려서 값을 반전시킨다.(정수형은 10진수 이기 때문에, '/' 연산, '%' 연산 사용)
3) Integer의 MAX_VALUE, MIN_VALUE 안에 없으면 0으로 리턴
4) x가 0보다 작으면 '-'화 시켜서 리턴, 그 외의 경우는 해당 값 리턴
반응형
'코딩테스트 > Leetcode' 카테고리의 다른 글
Leetcode [Java] :: 58. Length of Last Word (0) | 2023.09.02 |
---|---|
LeetCode [Java] :: 35. Search Insert Position (0) | 2023.08.29 |
[Leetcode] 976. Largest Perimeter Triangle [Java] (0) | 2023.08.23 |
댓글