본문 바로가기
Algorithm

99클럽 코테 스터디 16일차 TIL - Intersection of Two Arrays (리트코드 349 / JavaScript)

by 륜곰 2025. 4. 22.

오늘의 문제 링크

 

⭐ intro : 문제를 생각해나간 방식

 음... 이게 맞나? 싶을정도로 매우 간단하게 풀었다. 배열을 각각 순회하면서 중복값을 걸러주는 Set()에 저장해서, 해당 값을 바로 리턴. 사실 이게 시간복잡도로 치면 매우 느린 방식이라는것 나 또한 잘 인지하고 있다, O(num1길이 + num2길이) 만큼 걸릴것이므로... 이진탐색이 이론상으로는 절반 절반씩 줄여가면서 10억만개 요소라도 한 최대 12번 안으로 찾아낼 수 있는 방식이라는것도 얼추 알고있긴 하지만... 내 뇌는 두번째 인자가 2개 이상이고 원본배열이 홀수일 경우라는 조건에서 턱 막혀버렸다. 그래서 일단은 원시적인 방법으로 풀었다. 최악의 시간복잡도를 가지고 있다 할지언정...

 

⭐ 풀이과정

 오늘은 크게 쓸것이 없다. 배열 한개당 다른 배열을 순회하면서 중복값을 걸러주는 Set()에 저장해두기. 지금까지의 포스팅중 가장 짧은 풀이과정 포스팅이 아닐까 싶다. 최악의 시간복잡도를 지닌만큼, 당연하게도 현 사이트상으로는 가장 맨 꼴등(ㅋ...)에 위치하게 됬지만. 일단 내 입장에서는 어떻게든 풀어내는것을 1순위로 잡아보려고 한다.

 

⭐ 제출답안

var intersection = function (nums1, nums2) {
  const set = new Set();
  nums1.forEach((value) => {
    nums2.forEach((value2) => {
      if (value === value2) set.add(value);
    });
  });

  const result = Array.from(set);
  return result;
};

 

⭐ 공부했던 개념들

  • 딱히 뭐 없이... 생각나는대로 그대로 풀었다. 하지만 이진탐색으로 적용해야 할것 같은데, 일단은 이번주 주제가 이진탐색인것 같으니 좀 풀어보고 이 문제를 다시 풀어봐야 할것 같다.