개발/코딩테스트

[LeetCode] 9. Palindrome Number #Easy #Java

brobro332 2025. 2. 18. 21:41
반응형
문제
Given an integer x, return true if x is a palindrome, and false otherwise.
예제 1
Input: x = 121
Output: true
// Explanation: 121 reads as 121 from left to right and from right to left.


예제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.


예제3

Input: x = 10
Output: false
// Explanation: Reads 01 from right to left. Therefore it is not a palindrome.
 제약조건
-231 <= x <= 231 - 1


문제풀이

class Solution {
    public boolean isPalindrome(int x) {
        // 1. 변수 선언 및 초기화
        int remainder;
        int originX = x;
        int reversedX = 0;

        // 2. 팰린드롬 수 판별
        while (x > 0) {
            reversedX *= 10;   
            remainder = x % 10;
            reversedX += remainder;
            x /= 10;  
        }

        // 3. 반환
        return originX == reversedX ? true : false; 
    }
}

  • 팰린드롬 수를 구하는 방법은 크게  문자열 연산과 숫자 연산 두 가지가 많이 사용된다.
  • 그런데 문자열 연산은 속도도 느리고, 메모리를 많이 잡아먹는다.
  • 즉 숫자형 변수를 통해 나머지 연산을 하는 방법이 메모리 면에서도, 속도 면에서도 가장 효율적이라고 할 수 있다.
  • 코딩테스트에서 팰린드롬 수를 이용한 문제가 나온다면 이 점을 꼭 기억하도록 하자. 

 

이미지 출처

 

[김은우의 에듀테크 트렌드 따라잡기] 코딩 교육 사이트 LeetCode가 보여주는 코딩교육의 핵심

[김은우의 에듀테크 트렌드 따라잡기] 코딩 교육 사이트 LeetCode가 보여주는 코딩교육의 핵심

edu.chosun.com