Profile image with cat

Jaehee

Hi!

Thumbnail of LeetCode - 9. Palindrome Number

LeetCode - 9. Palindrome Number LeetCode

작성일 : 2021년 11월 08일  / 수정일 : 2024년 06월 05일

목차

  1. 문제 개요
  2. 풀이
    1. Solution
      1. 제출 결과

문제 개요

난이도 - EASY 사용 언어 - C++

정수형 입력값이 회문인지 검사합니다. 만약 121이 입력된다면 121을 뒤집은 값도 121이니 회문입니다.

만약 -121이 들어온다면 뒤집었을 때 121-가 되므로 회문이 아닙니다. 123 또한 뒤집었을 때 321이 되므로 회문이 아닙니다.

문제 - LeetCode 9. Palindrome Number

풀이

Solution

bool isPalindrome(int x) 
{
    if (x < 0) return false;
    else if (x < 10) return true;
    else if ((x % 10) == 0) return false;
 
    long reverse = 0;
    long tmpX = x;
 
    while (tmpX)
    {
        reverse = (reverse * 10) + (tmpX % 10);
        tmpX /= 10;
    }
 
    return reverse == x;
}

먼저 음수인 경우 절대 회문이 될 수 없기 때문에 false를 반환합니다.

숫자가 한 자리인 경우는 무조건 회문이기 때문에 true를 반환합니다.

10의 배수는 10, 20, … 120, 130 등 회문이 절대 될 수 없기 때문에 false를 반환합니다.

입력값 x를 뒤집은 값 reverse를 구합니다. reverse의 타입이 long인 이유는 x값이 int자료형의 최대값이 들어오는 경우 뒤집을 때 연산 중 에러가 발생하기 때문에 int보다 큰 자료형인 long 자료형을 사용합니다.(별도의 자료형 제한을 두지 않았기 때문에 사용하였습니다.)

제출 결과

Solution 1 result

0ms의 실행 결과가 표현되었으며, 다른 C++ 제출자보다 100%의 성능을 보였음을 확인할 수 있습니다.

코드 전문
class Solution 
{
public:
    bool isPalindrome(int x) 
    {
        if (x < 0) return false;
        else if (x < 10) return true;
        else if ((x % 10) == 0) return false;
 
        long reverse = 0;
        long tmpX = x;
 
        while (tmpX)
        {
            reverse = (reverse * 10) + (tmpX % 10);
            tmpX /= 10;
        }
 
        return reverse == x;
    }
};

LeetCode  시리즈의 다른 게시물 보기

Thumbnail of LeetCode - 13. Roman to Integer

주어진 로마 숫자를 정수형 숫자로 변환합니다.

2021년 11월 17일

Thumbnail of LeetCode - 12. Integer to Roman

정수형 숫자가 주어질 때 로마 숫자로 변환합니다.

2021년 11월 15일

Thumbnail of LeetCode - 11. Container With Most Water

다양한 길이를 가진 막대들을 이용해 가장 많은 액체를 담을 수 있는 양을 구합니다.

2021년 11월 13일

Thumbnail of LeetCode - 10. Regular Expression Matching

정규 표현식 "."과 "*"을 구현하여 문자열에서 패턴을 탐색합니다.

2021년 11월 10일

Thumbnail of LeetCode - 9. Palindrome Number

입력된 정수가 회문인지 검사합니다.

2021년 11월 08일

Thumbnail of LeetCode - 8. String to Integer (atoi)

입력된 문자열에서 정수를 Parsing하는 atoi 함수를 구현합니다.

2021년 11월 08일

Thumbnail of LeetCode - 7. Reverse Integer

주어진 정수를 뒤집어(Reverse) 변환합니다.

2021년 11월 08일

Thumbnail of LeetCode - 6. Zigzag Conversion

문자열을 지그재그로 변환합니다.

2021년 11월 07일