# 이진 탐색 <div class="embed-responsive embed-responsive-16by9"> <iframe src="https://www.youtube.com/embed/DstNRRcGgWg" frameborder="0" allowfullscreen></iframe> </div> ## 문제 정렬된 정수 배열에서 특정 값을 찾으려 한다. 이진 탐색(binary search) 알고리즘을 사용하여 이를 구현하시오. ## 출력 예 ``` [1, 3, 5, 7, 9, 11, 13, 15, 17] => 33이 있나요? false [2, 17, 19, 22, 25, 27, 28, 33, 37] => 33이 있나요? true ```
관련 강의로 이동

코드: java 1.8

import java.util.Arrays; public class BinarySearch { public static void main (String[] args) { // 테스트 배열 int[][] test = { { 1, 3, 5, 7, 9, 11, 13, 15, 17 }, { 2, 17, 19, 22, 25, 27, 28, 33, 37 } }; // 테스트 수행 for (int[] input : test) { System.out.printf("%s 배열에 %s이 있나요? %b\n", Arrays.toString(input), 33, contains(input, 33)); } } public static boolean contains(int[] arr, int target) { return binarySearch(arr, target, 0, arr.length - 1) >= 0; } // 정수 배열에서 검색 값을 찾으면 해당 인덱스를 반환 private static int binarySearch(int[] arr, int target, int low, int high) { /* 이진 탐색 알고리즘을 활용하여 해당 메소드를 완성하시오. */ return -1; } }

입력

정답이 궁금하다면? 코드를 제출해보세요!