정렬된 데이터를 이진 탐색 할때 사용하는 파이썬의 라이브러리 from bisect import bisect_left, bisect_right left_index = bisect_left(array, value, low(범위), high(범위)) # (low(범위) ~ high(범위))내에 있는 값 left_index = bisect_left(array, value) right_index = bisect_right(array, value, low(범위), high(범위)) # (low(범위) ~ high(범위))내에 있는 값 right_index = bisect_right(array, value) bisect_left(left_index = bisect_left(array, val..
### 이진 탐색 ### : 데이터가 '정렬'된 상태에서 데이터를 반으로 나눠가며 특정 값을 찾는 방법 : 정렬된 데이터 O(logn) : 시작점(start), 끝점(end), 중간점(mid)를 가지고 범위를 좁혀가며 값을 찾는다. data = [1,2,3,4,5,6,7,8,9,10] target = 2 start = 1 end = 10 # 반복 사용 def binarySearch(start, end, target): while (start >= end): mid = (start+end) // 2 if (data[mid] == target): return mid elif (data[mid] < target): start = mid + 1 else: end = ..
### defaultdict ### : dict() 에 list, int, set등 의 값을 기본값으로 장착 시켜주는 것 from collections import defaultdict #dict.values() => list d = defaultdict(list) d[1].append(1) print(d) # defaultdict(, {1: [1]}) #dict.values() => int d = defaultdict(int) d[1] = 1 print(d) # defaultdict(, {1: 1}) #dict.values() => set d = defaultdict(set) d[1].add(1) print(d) # defaultdict(, {1: {1}})
reverse() - list에서 제공하는 함수로 값을 반환하지 않는다. # list arr_n = [1, 2, 3] arr_w = ['a', 'b', 'c'] # reverse는 list에서 제공하며 값을 반환하지 않는다. => None print(arr_n.reverse()) #None print(arr_w.reverse()) #None print(arr_n) #[3, 2, 1] print(arr_w) #['c', 'b', 'a'] reversed() - 내장함수이다. #list arr_n = [1, 2, 3] arr_w = ['a', 'b', 'c'] print(reversed(arr_n)) # print(reversed(arr_w)) # print(list(reversed(arr_n))) #[3,..