작성
·
175
0
질문있습니다 ~!
조건문에 lt <= rt 말고 true로 작성하는 것도 괜찮은 건가요?
while (true) {
let mid = Math.floor((left + right) / 2);
if (arr[mid] === target) {
answer = mid + 1;
break;
} else if (arr[mid] > target) right = mid - 1;
else left = mid + 1;
}
답변 1
0
탈출조건이 없다면, 찾는 값이 없을때 무한루프에 빠질 수 있습니다. 위 코드에 target 값을 34로 설정해보시면 확인하실 수 있습니다.
문제조건에는 target이 주어진 숫자중 있다고 명시되어 있어서 괜찮겠지만, 해당 알고리즘을 이용해 다른 이분검색 문제를 푸시려면 탈출조건은 세워두시는 게 좋습니다!