[C] 백준 10815 숫자카드

z00m__in·2021년 5월 8일
0

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

문제

숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오.

제출 30000 정답 비율 49%





코드

#include <stdio.h>
#include <stdlib.h>
#define MAX 1000

int compare(const void *a, const void *b)
{
    return *(int*)a > *(int*)b ? 1 : (*(int*)a < *(int*)b ? -1 : 0);
}

int bin_search(int* arr, int key, int size) { 
    int front, mid, back;
    front = 0; back = size - 1;
    while (1) {
        mid = (front + back) / 2;
        if (arr[mid] == key) return 1;
        if (arr[front] == key) return 1;
        if (arr[back] == key) return 1;

        if (arr[mid] < key)
            front = mid + 1;
        else
            back = mid - 1;
        if (back <= front) return 0;
    }
}

int main() {
	int n = 0, m = 0;
	int arr[MAX], arr2[MAX];

	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &arr[i]);
	}

	scanf("%d", &m);
	for (int i = 0; i < m; i++) {
		scanf("%d", &arr2[i]);
	}
    
    qsort(arr, n, sizeof(int), compare);

	for (int i = 0; i < m; i++) {
		printf("%d\n", bin_search(arr, arr2[j], n));
	}
}
profile
우당탕탕 기록지

0개의 댓글

관련 채용 정보