백준

백준 10815 - Java

으엉어엉 2024. 8. 28. 19:16
728x90

문제

내 풀이

import java.util.Arrays;
import java.util.Scanner;

public class NumberCardGame {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //N 입력받기
        int N = sc.nextInt();
        int[] arr = new int[N];
        for (int i = 0; i < N; i++) {
            arr[i] = sc.nextInt();
        }
        //이진 탐색 트리 사용하기 위해 정렬
        Arrays.sort(arr);

        //M 입력받기
        int M = sc.nextInt();
        int[] arr2 = new int[M];
        for (int i = 0; i < M; i++) {
            arr2[i] = sc.nextInt();
        }

        // 이진 탐색트리를 통해 찾기
        for (int i = 0; i < M; i++) {
            int key = arr2[i];
            boolean found = false;

            for (int left = 0, right = N - 1; left <= right; ) {
                int mid = (left + right) / 2;

                if (arr[mid] == key) {
                    found = true;
                    break;
                } else if (arr[mid] < key) {
                    left = mid + 1;
                } else {
                    right = mid - 1;
                }
            }

            if (found) {
                System.out.print("1 ");
            } else {
                System.out.print("0 ");
            }
        }
    }
}

 

이진탐색으로 간결하게 풀 수 있다

728x90

'백준' 카테고리의 다른 글

백준 7785 - Java  (0) 2024.08.28
백준 14425 - Java  (1) 2024.08.28
백준 10866 - Java  (0) 2024.08.24
백준 1158 - Java  (0) 2024.08.24
백준 10845 - java  (0) 2024.08.15