이코테 고정점 찾기
업데이트:
고정점 찾기
이진 탐색 알고리즘으로 반절씩 줄여나가면서 찾음
import java.util.Scanner;
public class FixedPoint {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] nums = new int[N];
for(int i = 0; i < N; i++) {
nums[i] = sc.nextInt();
}
int result = findNum(0, N-1, nums);
System.out.println(result);
}
private static int findNum(int left, int right, int[] nums) {
int result = -1;
if(left <= right) {
int mid = (left + right) / 2;
if(nums[mid] == mid) {
return mid;
} else if(nums[mid] > mid) {
return findNum(left, mid-1, nums);
} else {
return findNum(mid+1, right, nums);
}
}
return result;
}
}
댓글남기기