[LeetCode][Java] Reverse Integer

최지수·2021년 9월 30일
0

Algorithm

목록 보기
12/77
post-thumbnail

난이도가 Easy래서 긴장 풀고 했는데 생각 좀 필요했습니다. 하지만 적당히 준비운동으로도 괜찮았어요.

문제

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-2^{31}, 23112^{31} - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

제한사항

  • None

접근

숫자를 반대로 출력하되, 변경되는 숫자가 Integer 범위를 넘어서면 0을 반환하는 문제입니다. 그리고 컴퓨터 환경이 32-bit라 가정을 하고 접근하라고 하였어요.

생각해보니 Easy라 해서 IDE 없이 풀어보려다가, 아직 자바가 익숙하지 않아서 헤맸던 것같...다고 생각할래요.

제가 접근한 방식은

  1. 답이 되는 변수에 10을 곱하고, 주어진 값의 10을 나눈 나머지를 더한다.
  2. 답이 Integer 범위를 넘어서면 0을 반환한다.
  3. 그렇지 않으면 주어진 값을 10으로 나눈 후 0이 될때까지 반복한다.

답안

class Solution {
    public int reverse(int x) {
        long answer = 0L;
        while(x != 0){
            answer = (answer * 10) + (x % 10);
            if(answer > Integer.MAX_VALUE || answer < Integer.MIN_VALUE)
                return 0;

            x /= 10;
        }

        return (int)answer;
    }
}
profile
#행복 #도전 #지속성

0개의 댓글