자바스크립트 코딩테스트 '이분검색'

릿·2021년 8월 27일
0

코딩테스트

목록 보기
5/27

이분검색 코드 구현.

  1. 내 풀이 :
    CS50강의 때 이분검색 이론을 배운대로 구현해보았다.
function solution(target, arr){
    let answer=0;
    let mid = Math.floor(arr.length/2)
    arr.sort((a, b)=> a - b);
    while (true) {
        if (target > arr[mid]) mid+=Math.floor(mid/2);
        else if (target < arr[mid]) mid=Math.floor(mid/2);                    
        else return mid+1;
    }
    return answer;
}

let arr=[23, 87, 65, 12, 57, 32, 99, 81];
console.log(solution(32, arr));
  1. 쌤 풀이 :
    lt와 rt를 쓰니 코드가 직관적이긴 한 것 같다.
function solution(target, arr){
    let answer;
    arr.sort((a, b) => a - b);
    let lt=0; rt=arr.length-1;
    while (lt<=rt) {
        let mid=parseInt((lt+rt)/2);
        if (arr[mid] === target) {
            answer=mid+1;
            break;
        } 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));
profile
새로운 도전과 재미를 추구하는 프론트엔드 개발자

0개의 댓글