static int[] a; public static void main(String[] args) { Scanner sc= new Scanner(System.in); first=sc.nextInt(); a = new int[first]; for (int i = 0; i <first; i++) {
int a1=sc.nextInt(); a[i]=a1; } Arrays.sort(a); int last = sc.nextInt(); int[] b= new int[last];
int b2; for (int i=0; i<last; i++) { b2=sc.nextInt();
} } public static int binary(int x){ int left=0; int right=first-1; while (left <= right) { int mid=left+(right-left)/2; if (a[mid]==x /*|| right==a[mid]*/) { return 1;
wnscjf1124 8년 전
import java.util.Arrays;
import java.util.Scanner;
public class 이진탐색숫자카드 {
static int first;
static int[] a;
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
first=sc.nextInt();
a = new int[first];
for (int i = 0; i <first; i++) {
int a1=sc.nextInt();
a[i]=a1;
}
Arrays.sort(a);
int last = sc.nextInt();
int[] b= new int[last];
int b2;
for (int i=0; i<last; i++) {
b2=sc.nextInt();
b[i]=b2;
b[i]=binary(b[i]);
System.out.println(b[i]);
}
}
public static int binary(int x){
int left=0;
int right=first-1;
while (left <= right) {
int mid=left+(right-left)/2;
if (a[mid]==x /*|| right==a[mid]*/) {
return 1;
}else if(a[mid]>x){
right=mid-1;
}else{
left=mid+1;
}
}
return 0;
}
}
더 효율적인 코드가 생각이 안나네요 ㅠㅠ