코딩테스트/Leetcode

LeetCode [Java] :: 7. Reverse Integer

블로그 주인장 2023. 8. 29.

🎁 문제 링크

https://leetcode.com/problems/reverse-integer/description/

 

Reverse Integer - LeetCode

Can you solve this real interview question? Reverse Integer - 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 envir

leetcode.com

🎁 문제 설명

  • 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보다 작으면 '-'화 시켜서 리턴, 그 외의 경우는 해당 값 리턴

반응형

댓글