본문 바로가기
코테/백준

[백준] 10815 숫자 카드 - C++

by gayoungeeda 2023. 7. 20.
728x90

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

 

문제 설명

두 개의 숫자 배열이 있을 때 b 배열의 숫자가 a 배열에 있으면 1, 아니면 0을 출력하는 문제

 


문제 풀이

#include<stdio.h>
#include<algorithm>
using namespace std;
int snum[500000], fnum[500000];
int main()
{
    int i, n, m, num, low, high, mid;
    scanf("%d", &n);

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

    sort(snum, snum+n);


    scanf("%d", &m);

    for(i = 0; i < m; i++) {
        scanf("%d", &fnum[i]);
    }

    for(i = 0; i < m; i++){
        low = 0; high = n-1;
        num = fnum[i];

        while(1) {
            mid = (low+high) / 2;
            if(low > high) {
                printf("0 ");
                break;
            }
            if(num == snum[mid]) {
                printf("1 ");
                break;
            }
            else if(num > snum[mid]) {
                low = mid+1;
            }
            else if(num < snum[mid]) {
                high = mid-1;
            }
        }
    }


    return 0;
}

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

[백준] 10845 큐 - C++  (0) 2023.07.21
[백준] 10799 쇠막대기 - C++  (0) 2023.07.20
[백준] 2805 나무 자르기 - C++  (0) 2023.07.20
[백준] 1764 듣보잡 - C++  (0) 2023.07.19
[백준] 10798 세로읽기 - C++  (0) 2023.07.19