🧩PS/🥈Nomal
[C/C++] 백준 1920번 수 찾기
Cocoon_
2020. 4. 12. 17:02
반응형
#include<stdio.h>
#include<algorithm>
using namespace std;
int binary_search(int a[], int n, int x) //이진 탐색, sort된 배열만 취급
{
long long l, r, m;
l = 0;
r = n - 1;
while (l <= r)
{
m = (l + r) / 2;
if (a[m] == x) return 1;
else if (a[m] > x) r = m - 1;
else l = m + 1;
}
return 0;
}
int main(void)
{
int M, N;
int A[100001], x;
bool check;
scanf("%d", &M);
for (int i = 0; i < M; i++)
{
scanf("%d", &A[i]);
}
sort(A, A+M);
scanf("%d", &N);
for (int i = 0; i < N; i++)
{
scanf("%d", &x);
if (binary_search(A, M, x) == 1)
{
printf("1\n");
}
else
{
printf("0\n");
}
}
}
처음에는 반복문으로 sort함수를 만들어서 정렬 후 이진탐색을 통해 해당 값이 있는지 확인하였지만 시간초과가 발생하여서 헤더파일 <Algorithm>에 속해있는 Sort 알고리즘으로 정렬하면 시간 단축이 가능할 것 같아서 수정 후 정답 받았습니다.
반응형