bisect.bisect_left(a, x, lo=0, hi=len(a), *, key=None)
정렬된 순서를 유지하도록 a에 x를 삽입할 위치를 찾는다.
nums1 = [4,9,5]
nums2 = [9,4,9,8,4]
nums2.sort()
result=set()
for n1 in nums1:
index=bisect.bisect_left(nums2,n1)
print(index)
if len(nums2)>0 and len(nums2)>index and n1==nums2[index]:
result.add(n1)
print(result)
위 코드는 num1과 nums2의 교집합을 찾는 코드이다.
index=bisect.bisect_left(nums2,n1)에서 n1이 정렬된 num2에 들어갈 위치를 반환한다.
위 코드에서 index는 0,3,2가 나온다. (nums2.sort() -> [4,4,8,9,9]이고 n1은 순서대로 4,9,5 이므로 0번째, 3번째 그리고 5는 4와 8 사이인 2번째에 들어가야 한다.)
'알고리즘' 카테고리의 다른 글
슬라이딩 윈도우 (0) | 2022.05.17 |
---|---|
이진 검색 예제, bisect_left 활용, 슬라이싱 (0) | 2022.05.16 |
이진 검색 (0) | 2022.05.16 |
힙을 사용한 예제(배열의 k번째 큰 요소) (0) | 2022.05.11 |
힙 (0) | 2022.05.10 |