문제 설명

주어진 정수 num의 자릿수를 거꾸로 뒤집어 반환해 주세요.

num이 음의 정수인 경우 - 부호는 그대로 유지해 주세요.

단, 결괏값이 100,000 이상이거나, -100,000 이하인 경우 0을 출력하세요.


입력 형식

· num : 정수


출력 형식

· num의 자릿수를 거꾸로 뒤집은 정수 반환


제약 사항

· -1000000 <= n <= 1000000


입출력 예시

· 예시1

  · 입력

      · n = 340

  · 출력 : 43

  · 설명 : 340의 자릿수를 거꾸로 뒤집으면 043이 된다. 여기서 leading zero(앞에 붙은 0)를 제외한 43이 답이 된다.

 

·  예시2

  · 입력

      · n = -587

  · 출력 : -785

  · 설명 : 음수의 경우, 음의 부호는 그대로 두고 나머지 자릿수만 뒤집는다.


작성 코드

public class Solution225 {
    public int solution(int num) {

        boolean minus = false;
        if (num < 0) {
            minus = true;
            num = -num;
        }

        String str = Integer.toString(num); // 입력 받은 숫자를 문자열로 변환
        String result = new StringBuilder(str).reverse().toString(); // 문자열을 뒤집음

        if (result.charAt(0) == '0') {
            result = result.substring(1);
        }
        int resultNum = Integer.parseInt(result); // 뒤집힌 문자열 다시 숫자로 변환
        if (minus) { // 입력받은 숫자가 음수였다면
            resultNum = -resultNum; // 결과는 다시 음수로 변환
        }
        if (resultNum >= 100000 || resultNum <= -100000) {
            return 0;
        }
        return resultNum;
    }

    public static void main(String[] args) {
        Solution225 st = new Solution225();
        int num = 340;
        System.out.println(st.solution(num)); // 43
        int num2 = -587;
        System.out.println(st.solution(num2)); // -785
    }
}

 

정답 코드

class Solution {
    int MAX_NUM = 100_000;

    public int solution(int num) {
        boolean isNegative = num < 0;

        if (isNegative) {
            num *= -1;
        }

        int i = num;
        int result = 0;
        while (i > 0) {
            result = (result * 10) + (i % 10);
            i = i / 10;
        }

        if (MAX_NUM < result) {
            return 0;
        }

        return isNegative ? -result : result;
    }

    public static void main(String[] args) {
        Solution st = new Solution();
        int num = 340;
        System.out.println(st.solution(num)); // 43
        int num2 = -587;
        System.out.println(st.solution(num2)); // -785
    }
}