이진탐색 3

[소프티어] [HSAT 7회 정기 코딩 인증평가 기출] 자동차 테스트(JAVA)

문제https://softeer.ai/practice/6247풀이(12분)import java.io.*;import java.util.*;public class Main { static int[] efficiency; static int n; static Set efficiencySet = new HashSet(); public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; st = new StringTokenizer(br.readLi..

[도구정리] Binary Search(이분탐색/이진탐색)

개념이진탐색은 정렬된 배열에서만 사용 가능한 탐색법이다.변수 3개(start, end, mid)를 사용하여 탐색한다. 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적으로 비교해서 원하는 데이터를 찾는 방식이다. O(logN)의 시간 복잡도를 가진다. (컴퓨터이기에 log는 log₂이다.)단계마다 탐색 범위를 절반으로 나누어가며 진행하기 때문이다.예를 들어, 처음 데이터의 개수가 32개라면,1단계를 거치면 약 16개의 데이터가 남고,2단계에서 약 8개,3단계에서 약 4개의 값을 탐색하게 된다.즉, 이진 탐색(이분 탐색)은 탐색 범위를 절반씩 줄여가며, O(logN)의 시간 복잡도를 보장한다.구현(JAVA) public static int binarySearch(int num){ // 1..