Chloe Jungah Kim
Chloe Jungah Kim
A blogger who writes about everything.

[Leetcode] 66. Plus One

https://leetcode.com/problems/plus-one/
[Leetcode] 66. Plus One

비어 있지 않은, 숫자로 이루어진 리스트가 하나 주어졌을 때, 리스트의 값이 나타내는 정수에 1을 더한 값을 리스트로 리턴하는 문제

  • 숫자는 음수가 아니며, 0으로 시작하지 않는다.
  • 리스트 내의 각각의 원소들은 single digit을 나타낸다.
  • most significant digit가 리스트의 가장 앞에 저장된다.

Example 1

  • Input : digits = [1, 2, 3]
  • Output : [1, 2, 4]

Example 2

  • Input : digits = [4, 3, 2, 1]
  • Output : [4, 3, 2, 2]

Example 3

  • Input : digits = [9]
  • Output : [1, 0]

Note

  • reversed : 리스트의 순서를 거꾸로 뒤집는다.
  • insert(0, value)를 이용하여 리스트의 가장 앞에 계산한 값이 포함되도록 한다.
  • 자릿수가 바뀌는 경우(e.g., 99 -> 100)를 대비하여 마지막에 up이 남아있는지 확인한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        res = []
        up = 1
        for i in reversed(digits) :
            if i + up >= 10 :
                res.insert(0, 0)
                up = 1
            else :
                res.insert(0, i + up)
                up = 0
        if up == 1 :
            res.insert(0, 1)
        return res