반응형
32-bit의 부호가 있는(signed)정수가 주어진다. 이정수를 reverse해서 출력해라.
EX)
input : 123
output : 321
input : -123
output : -321
정수를 10으로 나눈 나머지는 그 정수의 일의 자리를 반환한다.
123%10 = 3
정수를 10으로 나눈 몫은 일의자리를 제외한 나머지를 반환한다.
123 / 10 = 12
위의 값을 적절히 이용하면 reverse를 할 수 있다.
여기서 주의할 점은 Integer값의 범위이다.
종류 | 타입 | 크기 | 범위(최소 ~ 최대) |
boolean | 논리값 | 1 bit | true / false |
byte | 부호 있는 정수 | 8 bits | -128 ~ 127 |
char | 유니코드 문자 | 16 bits | \u0000 ~ \uFFFF |
short | 부호 있는 정수 | 16 bits | -32768 ~ 32767 |
int | 부호 있는 정수 | 32 bits | -2147483648 ~ 2147483647 |
ong | 부호 있는 정수 | 64 bits | -9223372036854775808 ~ 9223372036854775807 |
float | IEEE 754 실수 | 32 bits | 1.40239846E-45f ~ (표현 가능 양수 범위) 3.40282347E+38f |
double | IEEE 754 실수 | 64 bits | 4.94065645841246544E-324 ~ (표현 가능 양수 범위) 1.79769313486231570E+308 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class Solution {
public int reverse(int x) {
int rev = 0;
while (x != 0) {
int pop = x % 10;
x /= 10;
if (rev > Integer.MAX_VALUE/10 || (rev == Integer.MAX_VALUE / 10 && pop > 7)) return 0;
if (rev < Integer.MIN_VALUE/10 || (rev == Integer.MIN_VALUE / 10 && pop < -8)) return 0;
rev = rev * 10 + pop;
}
return rev;
}
}
|
cs |
출처 : https://leetcode.com/problems/reverse-integer/submissions/
반응형
'알고리즘 > 코드 연습' 카테고리의 다른 글
[백준 - 1924] 2007년 (0) | 2020.07.29 |
---|---|
[백준 - 2798] 블랙잭 (0) | 2020.07.24 |
[LeetCode] Roman to Integer (0) | 2020.07.21 |
[LeetCode] Palindrome Number (0) | 2020.07.20 |
[LeetCode] Two Sum (0) | 2020.07.20 |