[파이썬 알고리즘 인터뷰] 자신을 제외한 배열의 곱

2021. 1. 7. 11:03노트/Algorithm : 알고리즘

자신을 제외한 배열의 곱

배열을 입력받아 output[i]가 자신을 제외한 나머지 모든 요소의 곱셈 결과가 되도록 출력하라.

  • 입력

[1,2,3,4]

  • 출력

[24,12,8,6]

  • 주의

나눗셈을 하지 않고 O(n)에 풀이하라.

 

 

def productExcpetSelf(nums):
    out = [] 
    p = 1 
    # 왼쪽 곱셈 
    for i in range(0, len(nums)):
        out.append(p)
        p = p * nums[i]
    p = 1 
    # 왼쪽 곱셈 결과에 오른쪽 값을 차례대로 곱셈 
    for i in range(len(nums)-1, 0 -1, -1):
        out[i] = out[i] * p 
        p = p * nums[i]
    return out 
    
productExceptSelf(nums)
>>> [24, 12, 8, 6]