본문 바로가기
Java/리트코드

[리트코드][JAVA] 9. Palindrome Number

by 2D3 2023. 2. 11.
728x90

Contents

     

    대칭인 숫자가 나오면 ture를 반환하라

     

    문제 설명

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

    정수 x가 주어졌을 때, 만약 x가 대칭이면 true를 반환하고 그렇지 않으면 false를 반환하라.


     

    제한사항

    • -231 <= x <= 231 - 1

     

    입출력 예시

    Input: x = 121
    Output: true
    Explanation: 121은 왼쪽에서 오른쪽으로 갔을 때랑 오른쪽에서 왼쪽으로 갔을 때가 같다.

     

    설계 / 아이디어

     

    풀이방법1: int
    1. x의 각 자리수를 배열에 저장
    2. 배열 뒤집기
    3. 뒤집은 배열과 원래 배열이 같다면 true

    class Solution {
        public boolean isPalindrome(int x) {
            if (x < 0) {
                return false;
            }
            
            int[] num = 
            Stream.of(String.valueOf(x).split("")).mapToInt(Integer::parseInt).toArray();
            int[] revertNum = new int[num.length];
            
            for (int i = 0; i < num.length; i++) {
                revertNum[i] = num[num.length - 1 - i];
            }
            
            for (int i = 0; i < num.length; i++) {
                if (num[i] != revertNum[i]) {
                return false; 
                }
            } 
            return true;
        }
    }

    풀이방법2: Stirng

    1. str에 x를 문자열로 저장
    2. reverse에 메서드를 사용해서 뒤집힌 str을 저장

    class Solution {
        public boolean isPalindrome(int x) {
            String str=String.valueOf(x);
            String reverse= new StringBuilder(str).reverse().toString();
            
            if(str.equals(reverse)) {
                return true;
            }
            else {
                return false;
            }
        }
    }
    728x90

    댓글