작심삼일

[LeetCode] 454 | 4Sum II | Python 본문

스터디/코테

[LeetCode] 454 | 4Sum II | Python

yun_s 2022. 2. 3. 09:55
728x90
반응형

문제 링크: https://leetcode.com/problems/4sum-ii/


문제

Given four integer arrays nums1, nums2, nums3, and nums4 all of length n, return the number of tuples (i, j, k, l) such that:

  • 0 <= i, j, k, l < n
  • nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0

조건

  • n == nums1.length
  • n == nums2.length
  • n == nums3.length
  • n == nums4.length
  • 1 <= n <= 200
  • $-2^{28}$ <= nums1[i], nums2[i], nums3[i], nums4[i] <= $2^{28}$

내 풀이

1, 2번 list, 3, 4번 list를 따로따로 합을 구한 뒤 그 합이 0인 것만 뽑는다.


코드

class Solution:
    def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:
        N = len(nums1)
        save = defaultdict(int)
        ans = 0
        
        for num1 in nums1:
            for num2 in nums2:
                save[num1+num2] += 1
        
        for num3 in nums3:
            for num4 in nums4:
                ans += save[-num3-num4]
        
        return ans
728x90
반응형
Comments