😎풀이

  1. 이진 탐색을 위한 left, right를 정의한다.
  2. leftright를 통해 mid값을 도출한다.
    2-1. 현재 값과 mid 값이 같다면 배열 내에 존재하므로 해당 인덱스를 반환한다.
    2-2. 그렇지 않다면, mid 값과 target을 비교하며 포인터를 조정해 탐색한다.
  3. 찾지 못한 경우 -1을 반환한다.
function search(nums: number[], target: number): number {
    let left = 0
    let right = nums.length - 1
    while(left <= right) {
        const mid = Math.floor((left + right) / 2)
        const midVal = nums[mid]
        if(target === midVal) return mid
        if(target > midVal) left = mid + 1
        else right = mid - 1
    }
    return -1
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글