CS기초/코딩테스트

LeetCode 349 (Easy) Intersection of Two Arrays

오늘의 나1 2021. 3. 11. 00:41
출처: leetcode.com/problems/intersection-of-two-arrays/
 

Intersection of Two Arrays - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제

한글 번역은 아래 더보기를 클릭해주세요.

더보기

주어진 두 배열의 교집합을 반환하는 함수를 작성하여라.

예제 1:

  • 입력: nums1 = [1, 2, 2, 1], nums2 = [2, 2]
  • 출력: [2]

예제 2:

  • 입력: nums1 = [4, 9, 5], nums2 = [9, 4, 9, 8, 4]
  • 출력: [9, 4]

참고:

  • 반환되는 배열의 각 요소는 유니크하다.
  • 반환되는 배열의 요소는 어떤 순서로든 반환될 수 있다.

 

풀이

  • nums1과 nums2를 유니크하게 만들고, 교집합을 구한다

python

class Solution:
    def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
        return set(nums1) & set(nums2)

javascript

/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
    const set1 = new Set()
    nums1.forEach(item => {
        set1.add(item);
    });
    
    const set2 = new Set()
    nums2.forEach(item => {
        set2.add(item);
    });
    
    let longger, shorter;
    
    if (set1.size > set2.size) {
        longger = set1
        shorter = set2
    } else {
        longger = set2
        shorter = set1
    }
    
    let answer = []
    shorter.forEach(item => {
        if (longger.has(item)) {
            answer.push(item)
        }
    })
    
    return answer
};

 

결과