코딩테스트 연습 스터디 진행중 입니다. ✍✍✍
Notion : https://www.notion.so/1c911ca6572e4513bd8ed091aa508d67
문제
https://www.acmicpc.net/problem/10815
[나의 풀이]
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Correct {
	
    // 이분 탐색
    static void binarySearch(int[] mycard, int x, BufferedWriter bw) throws IOException {
        int low = 0;
        int high = mycard.length - 1;
        int mid;
        while (low <= high) {
            mid = (low + high) / 2;
            if (mycard[mid] == x) {
                bw.write("1 ");
                return;
            }
            else if (x < mycard[mid]) {
                high = mid - 1;
            }
            else {
                low = mid + 1;
            }
        }
        bw.write("0 ");
    }
    public static void main(String[] args) throws NumberFormatException, IOException {
        // 입력 받기
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        int N = Integer.parseInt(br.readLine());
        st = new StringTokenizer(br.readLine());
        int[] mycard = new int[N];
        for (int i = 0; i < N; i++) {
            mycard[i] = Integer.parseInt(st.nextToken());
        }
        int M = Integer.parseInt(br.readLine());
        st = new StringTokenizer(br.readLine());
        int[] check = new int[M];
        for (int i = 0; i < M; i++) {
            check[i] = Integer.parseInt(st.nextToken());
        }
        // 이진 탐색을 실행하기 위해서는 
        // 자료구조가 정렬 되어있어야함
        Arrays.sort(mycard);
        for (int i = 0; i < M; i++) {
            binarySearch(mycard, check[i], bw);
        }
        bw.flush();
    }
}
이분 탐색 문제입니다!
이분탐색 알고리즘은 'Do it 자료구조와 함께 배우는 알고리즘 입문' 1회독하며 배운 개념이라 수월하게 풀 수 있었습니다!💯💯💯
감사합니다!🐕🐕🐕
👍