사용 알고리즘: 이분탐색
사용 언어: java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main_1920_수찾기 {
static int n;
static int[] arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
int m = sc.nextInt();
for (int i = 0; i < m; i++) {
int findVal = sc.nextInt();
System.out.println(binarySearch(findVal));
}
}
private static int binarySearch(int findVal) {
int left = 0;
int right = arr.length-1;
while(left <= right) {
int middle = (left+right)/2;
//종료조건1. middle이 가리키는 곳에 findVal이 있다. 1리턴
if(arr[middle] == findVal) return 1;
//진행: 이동
if (arr[middle] < findVal) left = middle+1;
else right = middle-1;
}
//종료조건2. left>=right 0리턴 (찾을 수 없는 값)
return 0;
}
}
이슈:
이분 탐색! 반 끊어놓고 시작!
'알고리즘 > 백준' 카테고리의 다른 글
2644_촌수계산 (0) | 2024.01.23 |
---|---|
5567_결혼식 ** (0) | 2024.01.21 |
2583_영역 구하기 ** (0) | 2024.01.19 |
7576_토마토 (1) | 2024.01.14 |
14503_ 해결 못 함 (0) | 2024.01.09 |