본문 바로가기
Algorithm & SQL/BAEKJOON

백준 JAVA 10815 숫자 카드

by YoonJong 2022. 8. 19.
728x90

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

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

package BAEKJOON.Silver.Ⅴ;

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

public class NO10815_2 {

    static int N;
    static int M;

    public static void main(String[] args) {

        StringBuilder sb = new StringBuilder();
        Scanner sc = new Scanner(System.in);
        N = sc.nextInt();

        int[] arr = new int[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++) {
            int m = sc.nextInt();
            int left = 0;
            int right = N - 1;
            while(left <= right) {
                int mid = (left + right) / 2;
                int num = arr[mid];

                if(num == m) {
                    sb.append(1 + " ");
                    break;
                }

                if(num > m) {
                    right = mid - 1;
                } else {
                    left = mid + 1;
                }
            }

            if( left > right) {
                sb.append(0+ " ");
            }
        }
        System.out.println(sb);
    }
}
728x90

댓글