<aside> π₯ LeetCode 349
</aside>
λ λ°°μ΄μ΄ μ£Όμ΄μ§κ³ λ λ°°μ΄μ κ΅μ§ν©μ ꡬνλΌ.
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]
μ€λͺ
: [4,9]λν ν΅κ³Ό
μ²μ μκ°λ¬λ λ°©λ²μ λ¨μν νκ°μ λ°°μ΄μμ λ°λ³΅λ¬Έμ λλ©΄μ κ·Έ μ«μκ° λ€λ₯Έ λ°°μ΄μ μλμ§ νμΈνλ
λ°©λ²μ΄μλ€. ν΅κ³Ό μ λλ μ½λμμ§λ§, μμλ μ΄μ§ νμμΌλ‘ νμ΄λ΄μΌν κ² κ°λ€.
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
results = []
for num in nums1 :
if num in nums2:
results.append(num)
return list(set(results))
κΈ°λ³Έμ μΈ μμ΄λμ΄λ μ μ½λμ λΉμ·νλ€.
λ¨Όμ , ν λ°°μ΄μμ λ°λ³΅λ¬Έμ λλ©΄μ, μ΄μ§νμμΌλ‘ λ€λ₯Έ λ°°μ΄μ κ°μ΄ μλμ§ νμΈνλ λ°©λ²μ΄λ€.
bisectλͺ¨λμ μ¬μ©νλ€.
def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]:
result = set() # μ€λ³΅ λ°©μ§
# nums2λ₯Ό μ λ ¬νκ³ μμνλ€.
# nums2μ λν΄ μ΄μ§νμμ νκΈ° λλ¬Έμ΄λ€.
nums2.sort()
for n1 in nums1:
i2 = bisect.bisect_left(nums2, n1)
if len(nums2) > 0 and len(nums2) > i2 and n1 == nums2[i2]:
result.add(n1)
return list(result)
κ΅μ¬μμ μ μν νμ΄λ‘ μ§κ΄μ μ΄κ³ κ°λ¨ν μ½λλΌκ³ μκ°νλ€.
κΈ°λ³Έμ μΈ μμ΄λμ΄λ λ°°μ΄1μ iν¬μΈν°λ₯Ό λ°°μ΄2μ jν¬μΈν°λ₯Ό λκ³ μ¦κ°μμΌλκ°λ©΄μ κ°μ΄ κ°μμ§λ©΄,