리트코드(leetcode) 9번 문제 palindrome-number
포스트
취소

리트코드(leetcode) 9번 문제 palindrome-number


Palindrome Number(숫자 회문)



주어진 숫자를 뒤집었을 때에도 같은 숫자일 때에만 true, 아닐 때에는 false를 반환 시키는 문제이다.




문제 내용

Easy


Given an integer x, return true if x is a palindrome, and false otherwise.

 

Example 1:

Input: x = 121
Output: true
Explanation: 121 reads as 121 from left to right and from right to left.

Example 2:

Input: x = -121
Output: false
Explanation: From left to right, it reads -121. From right to left, it becomes 121-. Therefore it is not a palindrome.

Example 3:

Input: x = 10
Output: false
Explanation: Reads 01 from right to left. Therefore it is not a palindrome.

 

Constraints:

  • -231 <= x <= 231 - 1

 

Follow up: Could you solve it without converting the integer to a string?



Java에서 숫자를 뒤집는 방법 중 하나는 숫자를 문자열로 변환하고, 그 문자열을 또 char형 배열로 변환하여 반복문을 통해 뒤집는 것이다.



답안 보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
    public boolean isPalindrome(int x) {
        
        // 숫자를 문자열로 형변환
        String str = String.valueOf(x);
        
        // 변환된 문자열을 다시 char 배열로 형변환
		char[] arr = str.toCharArray();
        
        // 뒤집은 결과물을 담을 배열을 하나 선언(기존 배열의 길이와 같게)
		char[] arr2 = new char[arr.length];
		
        // 반복문을 통해 배열에 역순으로 요소를 집어넣음
		for(int i=0; i<arr.length; i++) {
			char temp = arr[i];
			arr2[i] = arr[arr.length-i-1];
		}
		
        // 뒤집은 배열을 문자열로 변환하여
		String str2 = String.valueOf(arr2);

        // 같으면 true, 다르면 false를 반환해준다.
        if(str.equals(str2)) return true;
        else return false;
    }
}



값을 int 형으로 다시 변환하여 비교할 시 -기호 때문에 예외가 발생함. 문자열 형태로 비교해야 정확한 비교가 가능.



이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.