Algorithm/LeetCode

[LeetCode][ Easy][Java] 7. Reverse Integer

youn12 2020. 11. 27. 13:36
✏️ Algorithm.

- Input으로 받은 수를 reverse 해서 출력
- Int 범위내에서 입력
- reverse 값이 overflows 발생할 경우 0 출력

leetcode.com/problems/reverse-integer/


📋 Solved.

1. Input 값의 절대 값을 String Array 로 변환한다.
2. Reverse 값을 저장할 StringBuilder를 선언한다.
3. Input 값의 부호를 먼저 StringBuilder에 저장한다.
4. 1.에서 선언한 Array를 Reverse로 StringBuilder에 저장한다.
5. Integer로 변환하여 결과값에 대입한다.
6. Integer로 변환 과정에서 변환값이 Integer 범위를 벗어나는 값일 경우 NumberFormatException 이 발생하게 된다. 이때 문제에서 주어진 조건 'reverse 값이 oveflow 값을 발생할 경우 0 출력' 으로 결과값을 0으로 대입한다.

✔️ Code.

public static int reverse(int x) {
	int result = 0;

	try {
		String[] reverse = String.valueOf(Math.abs(x)).split(""); // 1
		StringBuilder reverseStr = new StringBuilder(); // 2

		// 3
		if (x < 0)
			reverseStr.append("-");		
        	// 4
		for (int i = reverse.length - 1; i >= 0; i--)
			reverseStr.append(reverse[i]);
		// 5
		result = Integer.parseInt(reverseStr.toString());
		
        // 6
	} catch (NumberFormatException e) {
		result = 0;
	}

	return result;
}