코딩테스트/백준

백준 1920 : 수 찾기_자바 java(이분탐색)

플래시🦥 2023. 1. 4.
반응형

https://www.acmicpc.net/problem/1920


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

public class Main {
	
	static int[] A1;
	static int[] A2;
	
    public static void main(String[] args) throws IOException{
    
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	int n1= Integer.parseInt(br.readLine());
    	StringTokenizer st = new StringTokenizer(br.readLine()," ");
    	int n2= Integer.parseInt(br.readLine());
    	StringTokenizer st2 = new StringTokenizer(br.readLine()," ");
    	A1 = new int[n1];
    	A2 = new int[n2];
    	
    	for(int i=0; i<n1;i++) {
    		A1[i]=Integer.parseInt(st.nextToken());
    	}
    	Arrays.sort(A1);
    	
    	for(int i=0; i<n2;i++) {
    		A2[i]=Integer.parseInt(st2.nextToken());
    	}
    	
    	for(int i=0; i<n2;i++) {
    		binary(A2[i],0,A1.length-1);
    	}
    
    }
    
    public static void binary(int n,int start,int end) {
    	int mid;
    	
    	if(start<=end) {
    		mid=(start+end)/2;
    		
    		if(n==A1[mid]) {
    			System.out.println(1);
    			return;
    		}else if(n<A1[mid]) {
    			binary(n,start,mid-1);
    		}else {
    			binary(n,mid+1,end);
    		}
    	}else {
    		System.out.println(0);
			return;
    	}
    	
    }
    
}
728x90
반응형

댓글