Profile image with cat

Jaehee

Hi!

Thumbnail of LeetCode - 7. Reverse Integer

LeetCode - 7. Reverse Integer LeetCode

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

목차

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

문제 개요

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

정수 123이 주어진다면 321로, -123이 주어진다면 -321, 1200이 주어진다면 21로 변환하는 문제입니다.

문제 - LeetCode 7. Reverse Integer

풀이

Solution

while (x != 0)
{   
    if (result > (INT_MAX / 10)) return 0;
    else if (result < (INT_MIN / 10)) return 0;
 
    result *= 10;
    result += (x % 10);
 
    x /= 10;
}

단순히 입력 값 x의 나머지를 result에 더하고 다음 순회시 result에 10을 곱하여 변환하는 방식을 사용했습니다.

입력값은 int 타입이므로 32bit 크기의 자료형이기 때문에 만약 입력값이 뒤집었을 때 int 자료형의 크기가 넘을 경우 0을 반환하는 예외 처리를 수행합니다.

이번 문제에서는 INT_MAX의 값을 이용해 int 타입의 범위를 검사하였지만, long과 같이 int타입보다 더 큰 자료형을 이용한다면 별도의 예외 처리가 필요하지 않습니다.

제출 결과

Solution 1 result

0ms의 실행결과가 나왔으며, 다른 C++ 제출자에 비해 100% 좋은 성능이 보임을 확인할 수 있습니다.

코드 전문
#include <cmath>
#include <climits>
 
class Solution 
{
public:
    int reverse(int x) 
    {
        if (x == 0) return x;
 
        int result = 0;
 
        while (x != 0)
        {   
            if (result > (INT_MAX / 10)) return 0;
            else if (result < (INT_MIN / 10)) return 0;
 
            result *= 10;
            result += (x % 10);
 
            x /= 10;
        }
 
        return result;
    }
};

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

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일

Thumbnail of LeetCode - 5. Longest Palindromic Substring

주어진 문자열 중 가장 긴 회문(Palindrome)을 구합니다.

2021년 11월 06일

Thumbnail of LeetCode - 4. Median of Two Sorted Arrays

정수 값이 담긴 두 정렬된 배열의 중앙값을 계산합니다.

2021년 10월 29일