개발 관련 공부/알고리즘
백준 1920 수찾기
슴새
2021. 8. 17. 00:15
반응형
import java.util.*;
public class Main {
public static long arr [];
public static int n;
public static int m;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
arr=new long [n];
for(int i=0;i<n;i++) {
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
m=sc.nextInt();
for(int i=0;i<m;i++) {
long start=0;
long end=n-1;
long key=sc.nextLong();
System.out.println(search(start,end,key));
}
}
public static int search(long start,long end,long key) {
int mid=(int)((start+end)/2);
if(start>end) {
return 0;
}
else if(mid<0||mid>=n) {
return 0;
}
else {
if(arr[mid]==key)
return 1;
else if(arr[mid]>key) {
return search(start,mid-1,key);
}
else {
return search(mid+1,end,key);
}
}
}
}
배열을 굳이 2개 두지 않고, 입력을 바로 key값으로 쓰니까 런타임에러가 안났다... 두번째 배열로 풀면 뭔가 인덱스 꼬이는 부분이 있는 듯
첫 이분탐색문제
반응형