Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 하나 추가


n이라는 정수 목록이 있다고 가정하고 이것은 10진수를 나타내고 n[i]는 [0, 9] 사이입니다. 따라서 n이 [2, 4, 9]이면 숫자 249를 나타냅니다. 숫자에 1이 추가되도록 수정한 것을 제외하고 동일한 표현에서 동일한 목록을 찾아야 합니다.

따라서 입력이 n =[9,9]와 같으면 출력은 [1, 0, 0]

이 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • n :=n 시작 부분에 0 추가

  • n의 마지막 요소를 1만큼 증가

  • 범위 크기가 n - 1에서 0인 i에 대해 1만큼 감소, 수행

    • n[i-1] :=n[i-1] + (n[i] / 10)의 몫

    • n[i] :=n[i] 모드 10

  • n[0]> 0이면 n을 반환하고 그렇지 않으면 인덱스 1에서 끝까지 n

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

class Solution:
   def solve(self, n):
      n = [0] + n
      n[-1] += 1
      for i in range(len(n) - 1, 0, -1):
         n[i-1] += n[i] // 10
         n[i] = n[i] % 10
      return n if n[0] > 0 else n[1:]
ob = Solution()
print(ob.solve([9,9]))

입력

[9,9]

출력

[1, 0, 0]