https://leetcode.com/problems/product-of-array-except-self/description/

1) 코드
(1) 첫 코드
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
zeroCnt = 0
for i in range(len(nums)):
if nums[i] == 0:
zeroCnt += 1
if zeroCnt >= 2:
return [0]*len(nums)
else:
total = 1
answer = []
for i in range(len(nums)):
if nums[i] != 0:
total *= nums[i]
if zeroCnt == 1:
for i in range(len(nums)):
if nums[i] != 0:
answer.append(0)
else:
answer.append(total)
else:
for i in range(len(nums)):
answer.append(total // nums[i])
return answer
(2) 두 번째 코드
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
output = [1]*len(nums)
left = 1
for i in range(len(nums)):
output[i] *= left
left *= nums[i]
right = 1
for i in range(len(nums)-1, -1, -1):
output[i] *= right
right *= nums[i]
return output
2) 해설