본문 바로가기
Computer/Algorithm

[LeetCode] 350. Intersection of Two Arrays II - kotlin

by HanDongWook 2025. 3. 3.
반응형
fun intersect(nums1: IntArray, nums2: IntArray): IntArray {
    Arrays.sort(nums1)  // nums1 정렬
    Arrays.sort(nums2)  // nums2 정렬
    var i = 0           // nums1 포인터
    var j = 0           // nums2 포인터
    var k = 0           // 교집합 요소를 저장할 위치

    while (i < nums1.size && j < nums2.size) {
        when {
            nums1[i] < nums2[j] -> i++
            nums1[i] > nums2[j] -> j++
            else -> {  
                // nums1[i] == nums2[j]
                nums1[k++] = nums1[i]  // 교집합 원소를 nums1[k] 위치에 저장 후 k 증가
                i++
                j++
            }
        }
    }
    // 교집합으로 저장된 부분(0..k-1)만 잘라서 반환
    return Arrays.copyOfRange(nums1, 0, k)
}
반응형

댓글