본문 바로가기
LeetCode/Array & Hashing

[LeetCode][Kotlin] 349. Intersection of Two Arrays

by jinwo_o 2024. 10. 18.

349. Intersection of Two Arrays

Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must be unique and you may return the result in any order.

두 개의 정수 배열 nums1과 nums2가 주어지면, 교집합 의 배열을 반환합니다. 결과의 각 요소는 고유해야 하며, 어떤 순서로든 결과를 반환할 수 있습니다.

 

Example 1:

Input: nums1 = [1,2,2,1], nums2 = [2,2]

Output: [2]

 

Example 2:

Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]

Output: [9,4]

Explanation: [4,9] is also accepted.

 

Constraints:

  • 1 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 1000

코드 1

class Solution {
    fun intersection(nums1: IntArray, nums2: IntArray): IntArray {
        return nums1.intersect(nums2.toSet()).toIntArray()
    }
}

 

코드 2

class Solution {
    fun intersection(nums1: IntArray, nums2: IntArray): IntArray {
        val answer = mutableListOf<Int>()
        val set = nums1.toMutableSet()

        nums2.forEach { n ->
            if (n in set) {
                answer.add(n)
                set.remove(n)
            }
        }

        return answer.toIntArray()
    }
}