CodingTest/LeetCode

[LeetCode] 350. Intersection of Two Arrays II, Easy

뜸부깅 2025. 4. 9. 12:29
반응형

1. 문제

  • 정수 배열 nums1, nums2가 주어질 때, 두 배열에서 공통으로 등장하는 요소를 반환하라.
  • 이 결과에는 등장 횟수만큼 중복될 수 있다. (349번 문제는 고유한 요소 반환)

2. 해결

function intersect(nums1: number[], nums2: number[]): number[] {
    const map = new Map<number,number>();
    
    for(const num of nums1) {
        if(map.has(num)) map.set(num, map.get(num) + 1)
        else map.set(num, 1)
    }
    
    const result = [];
    for(const num of nums2) {
        if(map.has(num) && map.get(num) > 0) {
            result.push(num);
            map.set(num, map.get(num) - 1);
        }
    }
    
    return result;
    
};
  • nums1을 탐색하면서, set에 count를 value로 하여 쌓는다.
  • nums2를 탐색하면서, map에 있고 count가 0 이상인 경우 결과 배열에 담고 -1.