문제 출처 : https://www.acmicpc.net/problem/10815
이번 문제는 앞서 공부했던 이분 탐색을 이용하여 풀었다.
맨 처음 sort stl을 사용하여 정렬 한 뒤 이분 탐색으로 검색하여 답을 해결했다.
아래는 해당 문제에 대해 생각한 소스이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include<stdio.h>
#include<algorithm>
#pragma warning(disable:4996)
using namespace std;
int arr[500001];
bool BinarySearch(int start,int end,int value)
{
if (start > end)
return false;
int pivot = (start + end) / 2;
if (arr[pivot] == value)
return true;
else
{
if (arr[pivot] > value)
return BinarySearch(start, pivot - 1, value);
else
return BinarySearch(pivot + 1, end, value);
}
}
int main()
{
int N;
int num;
int value;
scanf("%d", &N);
for (int i = 0; i < N; i++)
scanf("%d", &arr[i]);
sort(arr, arr + N);
scanf("%d", &num);
for (int i = 0; i < num; i++)
{
scanf("%d", &value);
if (BinarySearch(0, N, value))
printf("1 ");
else
printf("0 ");
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
'알고리즘' 카테고리의 다른 글
백준 1406번 문제 ( 에디터 ) (0) | 2019.12.25 |
---|---|
백준 10816번 문제 ( 숫자 카드 2 ) (0) | 2019.12.25 |
백준 11650번 문제 ( 좌표 정렬하기 ) (0) | 2019.12.25 |
백준 10989번 문제 ( 수 정렬하기 3 ) (0) | 2019.12.24 |
백준 1920번 문제 ( 수 찾기 ) (0) | 2019.12.23 |