2776 - 암기왕 - 이분 탐색
문제
문제링크 : https://www.acmicpc.net/problem/2776
풀이전략
- 점수가 있나 없나 확인할때 이분 탐색을 사용해야한다.
- 범위는 정수라고 하기에 범위는 음수 양수 다 가능하다.
코드
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int N, M, T;
vector<int> memo1;
int BinarySearch(int lt, int rt, int num){
if(lt>rt){
return 0;
}
else{
int mid = (lt+rt)/2;
if(memo1[mid] == num) return 1;
else if(memo1[mid] > num){
return BinarySearch(lt, mid-1, num);
}
else{
return BinarySearch(mid+1, rt, num);
}
}
}
int main(){
// freopen("../input.txt","rt",stdin);
scanf("%d",&T);
for(int t=0; t<T; t++){
memo1.clear();
scanf("%d",&N);
int tmp = 0;
for(int i=0; i<N; i++){
scanf("%d",&tmp);
memo1.push_back(tmp);
}
sort(memo1.begin(), memo1.end());
scanf("%d",&M);
for(int i=0; i<M; i++){
scanf("%d",&tmp);
if(tmp > memo1[N-1] || tmp < memo1[0]){
printf("0\n");
}
else printf("%d\n",BinarySearch(0, memo1.size()-1, tmp));
}
}
return 0;
}
소감
간만에 쉬운 문제였다. 이제 이분탐색을 잘 할수있을것 같다.
Author And Source
이 문제에 관하여(2776 - 암기왕 - 이분 탐색), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gomster_96/백준-2776-암기왕-이분-탐색저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)