Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Plus One: 자릿수 배열로 표현한 숫자에 1 더하기

문제 개요

정수 배열 A가 있다고 가정해 보겠습니다. 배열 A는 n개의 음수가 아닌 원소를 담고 있으며, 배열 전체가 하나의 큰 숫자를 나타냅니다. 예를 들어 A = [5, 3, 2, 4]가 주어지면 이는 숫자 5324를 의미합니다.

우리가 해야 할 일은 배열 A가 나타내는 숫자에 1을 더한 뒤, 그 결과를 다시 배열 형태로 반환하는 것입니다. 따라서 위의 예에서 1을 더하면 A는 [5, 3, 2, 5]가 됩니다.

해결 접근 방법

이 문제는 다음과 같은 단계로 해결할 수 있습니다.

  • 배열의 각 자릿수를 문자열에 차례대로 이어 붙여 하나의 문자열로 만듭니다.
  • 문자열을 정수로 변환한 후 1을 더합니다.
  • 결과 숫자를 다시 각 자릿수로 분리하여 새로운 배열을 만듭니다.

아래 구현 예제를 통해 더 자세히 이해해 보겠습니다.

예제 코드 (Python)

class Solution(object):
    def plusOne(self, digits):
        """
        :type digits: List[int]
        :rtype: List[int]
        """
        num = ""
        for i in digits:
            num += str(i)
        num = int(num)
        num += 1
        num = str(num)
        ans = []
        for i in num:
            ans.append(int(i))
        return ans

digits = [5, 3, 2, 4]
ob1 = Solution()
print(ob1.plusOne(digits))

입력

digits = [5, 3, 2, 4]

출력

[5, 3, 2, 5]

참고 사항

이 방법은 파이썬이 임의 정밀도 정수(arbitrary precision integer)를 기본적으로 지원하기 때문에 자릿수가 매우 긴 숫자에도 오버플로 걱정 없이 동작합니다. 다만 문자열 변환 과정에서 O(n)의 추가 연산이 발생하므로, 자릿수별 올림(carry)만 처리하는 최적화 방식도 면접 등에서 함께 언급하면 좋습니다.