Notice
Recent Posts
Recent Comments
Link
bdfgdfg
1920번 수 찾기 - 이진탐색(이분탐색) 본문
반응형
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> data2;
vector<int> serch;
vector<bool> check;
void BinarySerch()
{
int mid;
int left = 0;
int right = data2.size() - 1;
static int idx = 0;
int value = serch[idx];
while (left <= right)
{
mid = (left + right) / 2;
if (data2[mid] == value)
{
check[idx] = true;
value = serch[idx];
break;
}
if (data2[mid] > value)
{
right = mid - 1;
}
else
{
left = mid + 1;
}
}
idx++;
}
int main(void)
{
int N,a;
cin >> N;
data2.reserve(N + 1);
serch.reserve(N + 1);
check.resize(N + 1);
for (int i = 0; i < N; ++i)
{
cin >> a;
data2.push_back(a);
}
sort(data2.begin(), data2.end());
cin >> N;
for (int i = 0; i < N; ++i)
{
cin >> a;
serch.push_back(a);
}
int i = 0;
while (i != N)
{
BinarySerch();
++i;
}
for (int i = 0; i < N; ++i)
cout << check[i] << " ";
return 0;
}
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
2480번, 2525번 (0) | 2021.09.17 |
---|---|
3046번,5564번,8393번 (0) | 2021.09.12 |
2845번, 2914번, 3003번 (0) | 2021.09.09 |
1000,1001,1550번 문제 (0) | 2021.09.08 |
sovled.ac (0) | 2021.09.08 |
Comments