알고리즘/[항해99] 1일 1알고리즘 스터디

99클럽 코테 스터디 16일차 TIL ✒️Intersection of Two Arrays

hooooolly 2025. 4. 21. 15:21

✅ 오늘의 학습 키워드

  • HashSet을 이용한 중복 제거

 


🔍 오늘의 문제 분석

↘️ 오늘의 문제 바로가기 ↘️

 

  • 두 정수 배열 nums1과 nums2가 주어진다
  • 두 배열에 모두 나타나는 정수 배열을 반환한다
  • 반환하는 정수 배열 요소는 중복되지 않도록 한다
  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

✨ 오늘의 회고

📌내가 적은 답안📌

더보기
class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        HashSet<Integer> set1 = new HashSet<>();
        HashSet<Integer> set2 = new HashSet<>();
        
        for (int num : nums1) {
          set1.add(num);
        }
        
        for (int num: nums2) {
          if (set1.contains(num)) {
            set2.add(num);
          }
        }
        
        int[] result = new int[set2.size()];
        int idx = 0;
        for (int num : set2) {
          result[idx++] = num;
        }
        return result;
    }
}

각 배열에 중복된 정수가 있기 때문에 중복을 제거하기 위해서 HashSet에 저장했다. 그리고 contains() 메서드를 사용해서 HashSet에 두 번째 배열의 요소가 존재할 경우, 또 다른 HashSet에 저장했다. 마지막으로 정수 배열로 반환하기 위해 set2를 배열로 변환했다.