이진탐색 고정점 찾기

jaegeunsong97·2023년 3월 13일
0
post-thumbnail

간단한 문제다, 이진탐색의 본질 알고리즘을 물어본다.

import java.io.*;
import java.util.*;

public class Main {

  public static int binarySearch(int[] arr, int start, int end) {
    if (start > end) return -1;
    int mid = (start + end) / 2;

    if (arr[mid] == mid) return mid;
    else if (arr[mid] < mid) return binarySearch(arr, mid + 1, end);
    else return binarySearch(arr, start, mid - 1);
  }


  public static void main (String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(br.readLine());
    int[] arr = new int[N];
    StringTokenizer st = new StringTokenizer(br.readLine());
    for (int i = 0; i < N ; i++) arr[i] = Integer.parseInt(st.nextToken());

    int answer = binarySearch(arr, 0, N - 1);
    System.out.println(answer);
  }
}
profile
현재 블로그 : https://jasonsong97.tistory.com/

0개의 댓글