코딩테스트 준비하기 - 43일차

5250 단어 algorithmalgorithm

풀이코드

      //10. 이분검색
      function solution(target, arr) {
        //방법 1
        // let answer = arr;
        // arr = arr.sort((a, b) => a - b);
        // let result;
        // for (i = 0; i < arr.length; i++) {
        //   if (arr[i] === target) result = i + 1;
        // }
        // return result;

        //방법 2
        let answer;
        arr = arr.sort((a, b) => a - b);
        let lt = 0;
        let rt = arr.length - 1;

        while (lt <= rt) {
          let mid = parseInt((lt + rt) / 2);
          if (arr[mid] === target) answer = mid + 1;
          else if (arr[mid] > target) rt = mid - 1;
          else lt = mid + 1;
        }
        return answer;
      }

      let arr = [23, 87, 65, 12, 57, 32, 99, 81];
      console.log(solution(32, arr));

좋은 웹페이지 즐겨찾기