LeetCode : Product of Array Except Self (Medium)

이동현·2021년 6월 13일
0
post-thumbnail

0. Overview


1. Problem

2. Solution

def productExceptSelf(nums: List[int]) -> List[int]:
    no_zeros = list(filter(lambda x:x != 0, nums))
    product = reduce(lambda x,y :x * y, no_zeros)

    if len(no_zeros) == len(nums) :
        answer = list(map(lambda x: product // x, nums))
    elif len(nums) - len(no_zeros) == 1 :
        answer = [0 for i in range(len(nums))]
        answer[nums.index(0)] = product
    else :
        answer = [0 for i in range(len(nums))]
    return answer

3. Review

  • 리스트 nums 내에 0 의 개수에 따라 아래와 같이 다르게 처리해 줌으로써 쉽게 문제에 대한 해답을 도출할 수 있습니다.

  • Python 내 map, filter, reduce 함수에 대한 기본적인 이해도가 있다면 코드의 길이가 길지 않게 문제를 해결할 수 있습니다.

profile
아직 배울게 많은 주니어 Data Engineer 입니다 :)

0개의 댓글