본문 바로가기
  • Masacorgi 's Dev Bloggg
알고리즘

[알고리즘] Palindrome Number - Java - LeetCode

by masacorgi 2024. 12. 9.

Palindrome Number

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.

내 제출

class Solution {
    public boolean isPalindrome(int x) {
        if(x<0) return false;
        String strX = Integer.toString(x);

        StringBuffer sb = new StringBuffer(strX);
        String reversedX = sb.reverse().toString();

        if(strX.equals(reversedX)){
            return true;
        }else{
            return false;
        }

    }
}

정답

class Solution {
    public boolean isPalindrome(int x) {
        if(x<0) return false;

        int temp = x;
        int reversed = 0;

        while(temp != 0){
            reversed *= 10;
            int num = temp % 10;
            reversed += num;
            temp /= 10;
        }

        return (reversed == x);
    }
}

내 제출도 정답조건에 맞아 통과되었지만 시행시간이 8ms 로 매우 느렸음
런타임이 빠른 솔루션을 확인했더니 내장함수를 사용하지 않고 수학적으로 접근했다.
정답 코드로 수정하니 수행시간이 4ms 로 두배나 빨라졌음

내장함수가 편하고 간단한 것은 맞지만 알고리즘 공부이지 함수 사용법 습득이 아니므로 사용을 자제해야겠다

'알고리즘' 카테고리의 다른 글

[알고리즘] Roman to Integer - Java - LeetCode  (0) 2024.12.10