배움 저장소

[Leet Code] 066 Plus One 본문

PS/LeetCode

[Leet Code] 066 Plus One

시옷지읏 2021. 11. 5. 18:21

https://leetcode.com/problems/plus-one/

 

Plus One - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

풀이.

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
        digits[digits.size()-1]++;
        
        for(int i= digits.size()-1; 0<i; --i)
        {
            if(digits[i] >= 10)
            {
                digits[i] = digits[i] - 10;
                digits[i-1]++;
            }
        }    
        
        if(digits[0] >= 10)
        {
            digits[0] = digits[0] - 10;
            vector<int> new_digits(1,1);
            new_digits.insert(new_digits.end(), digits.begin(), digits.end());
            return new_digits;
        }
        return digits;
    }
};

 

참고

++digits[i] %= 10 이런 표현은 처음보는데 신박하다. 

class Solution {
public:
    vector<int> plusOne(vector<int>& digits) {
            for(int i = digits.size() - 1; 0<=i; i--) 
            {
                if (++digits[i] %= 10)
                    return digits;
            }

            digits[0] = 1;
            digits.push_back(0);
        
            return digits;
        }
};
Comments