Leetcode - 7. Reverse Integer

숲사람·2022년 6월 16일
0

멘타트 훈련

목록 보기
60/237

문제

주어진 수를 뒤집어서 리턴하라 만약 결과가 [-2^31, 2^31 - 1] 범위를 벗어나면 0리턴

Input: x = 123
Output: 321

Input: x = -123
Output: -321

Input: x = 120
Output: 21

https://leetcode.com/problems/reverse-integer/

해결

자릿수 계산하는 패턴 익히기

int reverse(int n){
    int digit[11] = {0};
    int sign = 1;
    int dcnt = 0;
    long ret = 0;
    long x = n;
    
    if (x < 0) {
        sign = -1;
        x = x * sign;
    }
    
    while (x > 0) {
        int val = x % 10;
        digit[dcnt++] = val;
        x = x / 10;
    }
    
    for (int i = 0; i < dcnt; i++) {
        ret += digit[i];
        ret = ret * 10;
    }
    ret /= 10;
    if (ret >= -INT_MAX && ret < INT_MAX)
        return (int)ret * sign;
    else
        return 0;
}
profile
기록 & 정리 아카이브 용도 (보다 완성된 글은 http://soopsaram.com/documentudy)

0개의 댓글