출처: leetcode.com/problems/intersection-of-two-arrays/
문제
한글 번역은 아래 더보기를 클릭해주세요.
더보기
주어진 두 배열의 교집합을 반환하는 함수를 작성하여라.
예제 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
};
결과
'CS기초 > 코딩테스트' 카테고리의 다른 글
이것이 취업을 위한 코딩테스트다 15장. 이진탐색 문제 (0) | 2021.03.11 |
---|---|
LeetCode 35 (Easy) Search Insert Position (0) | 2021.03.11 |
LeetCode 278 (Easy) First Bad Version (0) | 2021.03.11 |
LeetCode 392 (Easy) Is Subsequence (0) | 2021.03.03 |
LeetCode 1710 (Easy) Maximum Units on a Truck (0) | 2021.03.03 |