오늘 풀어본 leetcode 문제는 비교적 간단한 두 배열에서 같은 숫자를 찾아내어 새로운 배열로 return해보는 문제였다.
Leetcode - intersection of two arrays
문제는 아래와 같다.
📌 두 배열에서 같은 숫자를 찾아내어 새로운 배열로 return 해야하며, unique해야한 다는 것이 문제의 핵심이다.
function intersection(nums1: number[], nums2: number[]): number[] {
const result = [];
const set1 = new Set(nums1);
const set2 = new Set(nums2);
for (const num of set1) {
if (set2.has(num)){
result.push(num);
}
}
return result;
};
숫자 배열 두 개, nums1과 nums2를 인자로 받는다. 해답의 조건이었던 unique해야한다는 점을 보고 각 인자를 new Set()함수를 이용해 중복된 값을 제외한 배열을 set1과 set2변수에 할당해주었다.
for...of 반복문을 이용하여 set2 배열 안의 숫자가 set1 안의 숫자를 가지고 있는지 순회하며 체크하고, 만약에 같은 숫자가 있다면 상단에 선언한 result 배열에 push 해준다.
다 순회한 후에는 중복된 값 없이, 교차로 가지고 있던 숫자 배열, result를 return해준다.
지난번 binary search 를 이용한 알고리즘 문제보다는 쉬워서 비교적 일찍 끝낼 수 있었다 ㅎㅎ