[BAKJOON] #1932. 정수 삼각형 (다이나믹 프로그래밍)
BAKJOON #1932. 정수 삼각형 문제를 파헤쳐보자 :)
이진 탐색(Binary Search) 알고리즘에 대해 알아보자 :)
순서 | 절차 |
1 | 탐색할 배열의 시작점(left), 끝점(right)을 설정합니다. |
2 | mid = (left + right) // 2를 계산하여 중간 값을 찾습니다. |
3 | 중간값과 찾는 값을 비교해, 왼쪽 또는 오른쪽 반절로 탐색 범위를 좁힙니다. |
4 | 값을 찾거나 탐색 범위가 사라질 때까지 2~3을 반복합니다. |
def binary_search(arr, target): left, right = 0, len(arr) - 1 while left <= right: mid = (left + right) // 2 if arr[mid] == target: return mid # target found elif arr[mid] < target: left = mid + 1 # search right half else: right = mid - 1 # search left half return -1 # not found
항목 | 선형 탐색 | 이진 탐색 |
전제 조건 | 정렬 필요 없음 | 정렬 필수 |
시간 복잡도 | O(N) | O(log N) |
데이터 크기 | 작을 때 유리 | 클수록 유리 |
구현 난이도 | 매우 쉬움 | 조금 더 복잡 |