Problem :

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


My Solution :

class Solution:
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
carry = 1
for i in range(len(digits)-1, -1, -1):
digit = (carry + digits[i]) % 10
carry = (carry + digits[i]) // 10
digits[i] = digit
if carry == 0:
return digits
return [1] + digits


Comment :

위 방법은 더하기 연산을 할 때의 일반적인 패턴을 활용한 것이고, 아래 방법은 이 문제에만 국한된 방법이다.


My Solution2 :

class Solution:
def plusOne(self, digits):
"""
:type digits: List[int]
:rtype: List[int]
"""
for i in range(len(digits)-1, -1, -1):
if digits[i] < 9:
digits[i] += 1
return digits
digits[i] = 0
return [1] + digits