프로그래머/Python
[Python] Leet Code 238. Product of Array Except Self
태히리
2021. 3. 6. 14:16
본 내용은 <파이썬 알고리즘 인터뷰>를 참고했습니다.
왼쪽 곱셈 결과에 오른쪽 값을 차례대로 곱셈
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
out = []
prod = 1
for idx in range(0, len(nums)):
out.append(prod)
prod *= nums[idx]
prod = 1
for idx in range(len(nums)-1, -1, -1):
out[idx] = out[idx]*prod
prod = prod*nums[idx]
return out
이 문제에서 배워야할 포인트
- 나눗셈을 하지 않고 O(n)에 풀이해야 한다
- 풀이 방법은 한 가지 뿐이다. 자기 자신을 제외하고 왼쪽의 곱셈 결과와 오른쪽의 곱셈 결과를 곱해야 한다
- range()의 역순 계산