- 풀이 날짜 :
2021-06-13
- 풀이 소요 시간 :
15m
- LeetCode URL : https://leetcode.com/problems/product-of-array-except-self/
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
리스트 nums
내에 0
의 개수에 따라 아래와 같이 다르게 처리해 줌으로써 쉽게 문제에 대한 해답을 도출할 수 있습니다.
Python 내 map, filter, reduce
함수에 대한 기본적인 이해도가 있다면 코드의 길이가 길지 않게 문제를 해결할 수 있습니다.