알고리즘/백준

1920>수 찾기

Diademata 2018. 6. 24. 23:08
반응형
https://www.acmicpc.net/problem/1920


문제

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