Leetcode - 9. Palindrome Number

m0d0ri205·2024년 9월 30일

LeetCode

목록 보기
1/4
post-thumbnail

들어가며

Leetcode 문제 풀이이다. C++를 사용하여 해당 사이트의 문제들을 풀어나갈 예정이다.

9. Palindrome Number

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


설명을 해석하면 정수 x 값이 회문이면 참으로 반환하고 그렇지 않으면 거짓으로 반환하는 문제이다.


먼저 회문이란 설명과 같이 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 숫자, 문자열을 말한다.

if (x < 0) { // - number
            return false;
        }

먼저 회문에는 음수가 나올 수 없기 때문에 x 값이 음수인 경우는 false를 반환해주었다.

while (x > 0 || x != 0) {
            number_reverse = (number_reverse * 10) + (x % 10);
            x /= 10;
        }

그 다음으로 x가 양수이거나 0이 아닐 경우, 문자열을 뒤집는 코드를 작성해서 문자열을 반전 시켜주었다.

// even case compare
        return number_reverse == save_the_original_x; // True return.

원래 x의 값과 뒤집은 x의 값이 값을 경우, True를 반환하게 코드를 작성해서 회문인지 아닌지 판별하는 문제를 해결할 수 있었다.

// 전체 코드
class Solution {
public:
    bool isPalindrome(int x) {
        if (x < 0) { // - number
            return false;
        }

        long number_reverse = 0;
        int save_the_original_x = x;

        // reversing the x
        while (x > 0 || x != 0) {
            number_reverse = (number_reverse * 10) + (x % 10);
            x /= 10;
        }

        // even case compare
        return number_reverse == save_the_original_x; // True return.

        
    }
};

전체 코드는 위와 같다.

느낀점

처음 파이썬 reverse 함수를 사용하지 않고, C++를 이용해서 숫자를 반전시키는데 시간을 많이 사용한 문제였던 것 같다. 아직 C++의 기본기가 많이 부족한 것 같다는 것을 느꼈다.

profile
말하는 감자중.....

0개의 댓글