문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수들의 범위는 int 로 한다. |
code>>
#include<iostream>
#include<algorithm>
int list[100000];
int max;
int Search(int find, int front, int end)
{
if (list[(front + end) / 2] == find) return 1;
if (front == end) return 0;
if(list[(front + end) / 2] > find)
return Search(find, front, (front + end) / 2);
else
return Search(find, (front + end) / 2 + 1, end);
}
int main()
{
std::ios::ios_base::sync_with_stdio(false);
std::cin >> max;
for (int i = 0; i < max; i++)
std::cin >> list[i];
std::sort(list, list + max);
int size, input;
std::cin >> size;
for (auto i = 0; i < size; i++)
{
std::cin >> input;
printf("%d\n", Search(input, 0, max - 1));
}
return 0;
}
'알고리즘 > 백준' 카테고리의 다른 글
9252>LCS2 (0) | 2018.08.20 |
---|---|
9251>LCS (0) | 2018.08.04 |
1780>종이의 개수 (0) | 2018.06.22 |
2912>백설공주와 난쟁이 (0) | 2018.06.13 |
7568>덩치 (0) | 2018.06.09 |