Leet Code - 4Sum II

hatban·2022년 9월 21일
0

4Sum II

✔️ 문제 링크

https://leetcode.com/explore/learn/card/hash-table/187/conclusion-hash-table/1134/

처음엔 혹시 몰라서 for문으로 돌려봤다
안될걸 알았지만 역시나 타임아웃!

배열을 2개씩 묶어서 각각 sum을 index로 하는 map을 만들어준 다음 만든 map의 index값은 sum을 만드는 조합의 갯수가 된다

만든 map을 순회하면서 각각의 index합이 0이라면 value값을 곱해주면 조합의 갯수가 된다



코드를 보자!

var fourSumCount = function(nums1, nums2, nums3, nums4) {
    let answer = 0;
    
    let getMap = (arr1, arr2) => {
        let idxmap = new Map();
        for(let i of arr1){
            for(let j of arr2){
                const sum = i+j;
                const get = idxmap.get(sum) || 0;
                idxmap.set(sum , get+1);
            }
        }
        return idxmap;
    }
    
    const map12 = getMap(nums1, nums2);
    const map34 = getMap(nums3, nums4);
    
    for(let [key, value] of map12){
        if(map34.has(-key)){
            answer += map12.get(key) * map34.get(-key);
        }
    }
    
    return answer;
};




0개의 댓글