숫자를 주면 뒤집어서 다시 똑같은 타입으로 리턴하도록 한다.
public int solution(int n) {
int answer = 0;
while (n != 0) {
answer = answer * 10 + n % 10;
n /= 10;
}
return answer;
}
숫자를 뒤집으려면 숫자를 10으로 나눈 나머지를 계속 더해준다.
더할 때 기존 숫자에 곱하기 10을 해줘야 자릿수를 하나씩 넘길 수 있다.
public int solution(int x) { // x = -1234
int answer = 0;
while(x > 9 || x < -9) {
answer = answer * 10 + x % 10;
x /= 10;
}
return answer * 10 + x; // -4321
}
마지막 숫자는 x를 10으로 나눈 나머지이다. -1234 를 10 으로 나누면 몫이 -123이고 나머지가 -4가 된다. 이때 마지막 숫자는 나머지인 -4 이다. 그 후 answer에 10을 곱하고 내가 가져온 마지막 숫자를 더해서 맨 앞으로 가져올 수 있다.
→ 위와 같은 while 문이 런타임 에러가 생긴다면?