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 |