[LeetCode] 238. Product of Array Except Self

원숭2·2022년 2월 11일
0

LeetCode

목록 보기
42/51

문제

풀이

  1. 자기자신을 제외한 왼쪽의 곱셈 결과 * 오른쪽 곱셈 결과로 해결함.
  2. 처음 for문에서 왼쪽부터 res배열에 [안 곱한 값, 1번째, 1 2번째, 1 2 * 3번째]가 입력됨.
  3. 반대로 오른쪽부터 계산을 실행하면 [4 3 2번째, 4 * 3번째, 4번째, 안 곱한 값]이 계산되므로, 이 둘을 서로 곱해주면 됨.

코드

class Solution:
    def productExceptSelf(self, nums: List[int]) -> List[int]:
        res = []
        calc = 1
        
        for i in range(len(nums)) :
            res.append(calc)
            calc *= nums[i]
        
        calc = 1
        for j in range(len(nums)-1, -1, -1) :
            res[j] *= calc
            calc *= nums[j]
        
        return res   

0개의 댓글