https://www.acmicpc.net/problem/1920
1920을 풀면서 맞는 것 같은데 계속 시간 오류가 떠서 찾아보았더니
cin 속도 문제였고
ios_base::sync_with_stdio(0);cin.tie(0); 을 넣어서 해결하였다.
대회와 같이 속도가 필요하다면 scanf, printf를 사용하는 것이 좋을 수 있다.
#include <iostream>
#include <algorithm>
using namespace std;
int N,M;
int arr[100010];
void binarySearch(int key){
int start = 0;
int end = N-1;
int mid;
while(end>=start){
mid =(start+end)/2;
if(arr[mid]==key){
cout<<1<<"\n";
return;
}else if(arr[mid]>key){
end = mid - 1;
}else{
start = mid + 1;
}
}
cout<<0<<"\n";
return;
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);
cin>>N;
int temp;
for(int i=0;i<N;i++){
cin>>temp;
arr[i]=temp;
}
sort(arr,arr+N);
cin>>M;
for(int i=0;i<M;i++){
cin>>temp;
binarySearch(temp);
}
return 0;
}
'개발자 > algorithm' 카테고리의 다른 글
백준 1010번 : 다리 놓기 (c++) (0) | 2020.03.20 |
---|---|
2018 카카오 코딩테스트 1번 : 비밀지도 (c++) (0) | 2020.03.18 |
백준 1339번 : 단어 수학 (c++) (0) | 2020.03.10 |
백준 1759번 : 암호 만들기 (c++) (0) | 2020.03.08 |
백준 9663번 : N-Queen (c++) (0) | 2020.03.08 |