SearchInsertPosition

Published at 2021-07-12

class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        left = 0
        right = len(nums)
        while left < right:
            half = left + (right - left) // 2
            if nums[half] == target:
                return half
            elif nums[half] < target:
                left = half + 1
            elif nums[half] > target:
                right = half

        return left
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
var searchInsert = function (nums, target) {
  let start = 0;
  let end = nums.length;

  while (start < end) {
    const mid = Math.floor((start + end) / 2);
    if (nums[mid] == target) {
      return mid;
    } else if (nums[mid] < target) {
      start = mid + 1;
    } else {
      end = mid;
    }
  }
  return end;
};

/*

[이진 탐색]
중간 값을 구해서 target이 들어갈 위치를 검사함.
들어갈 위치를 못찾은 채 while문이 종료되었다면 가장 마지막에 들어가야 한다는 뜻

*/