난이도가 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 [, ], then return 0
.
Assume the environment does not allow you to store 64-bit integers (signed or unsigned).
숫자를 반대로 출력하되, 변경되는 숫자가 Integer
범위를 넘어서면 0
을 반환하는 문제입니다. 그리고 컴퓨터 환경이 32-bit라 가정을 하고 접근하라고 하였어요.
생각해보니 Easy
라 해서 IDE 없이 풀어보려다가, 아직 자바가 익숙하지 않아서 헤맸던 것같...다고 생각할래요.
제가 접근한 방식은
Integer
범위를 넘어서면 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;
}
}