본문 바로가기
알고리즘/LeetCode

LeetCode: 349. Intersection of Two Arrays

by 패쓰킴 2025. 8. 13.
728x90

https://leetcode.com/problems/intersection-of-two-arrays/description/

 

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.

 

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

 

풀이

nums2에 있는 nums1 숫자 배열을 리턴하면 됨

class Solution {
    func intersection(_ nums1: [Int], _ nums2: [Int]) -> [Int] {
        var result = [Int]()
        
        for i in nums1 {
            for j in nums2 {
                if i == j {
                    result.append(i)
                }
            }
        }
        
        return Array(Set(result))
    }
}

정답이긴 한데

4ms 걸려서 0ms 코드를 보니 딕셔너리를 활용했다.

중복 처리를 바로 딕셔너리에서 false로 만들어서 시간이 훨씬 단축 된다.

class Solution {
    func intersection(_ nums1: [Int], _ nums2: [Int]) -> [Int] {
        var a : [Int : Bool] = [:]
        var result : [Int] = []
        
        for num in nums1 {
           a[num] = true
        }

        for num in nums2 {
            if a[num] == true {
                result.append(num)
            }
            a[num] = false
        }
        return result
    }
}

import Testing

struct Tests {
    private let solution = Solution()
    
    @Test func test1() async throws {
        let num1 = [1,2,2,1]
        let num2 = [2,2]
        
        #expect(solution.intersection(num1, num2) == [2])
    }
    
    @Test func test2() async throws {
        let num1 = [4,9,5]
        let num2 = [9,4,9,8,4]
        let result = solution.intersection(num1, num2)
        
        if result == [9,4] || result == [4,9] {
            #expect(true)
        }
    }
}
728x90

'알고리즘 > LeetCode' 카테고리의 다른 글

LeetCode: 888. Fair Candy Swap  (0) 2025.08.19
LeetCode: 704. Binary Search  (0) 2025.08.17
LeetCode: 441. Arranging Coins  (0) 2025.08.14
LeetCode: 222. Count Complete Tree Nodes  (0) 2025.08.12
LeetCode: 35. Search Insert Position  (0) 2025.08.11

댓글