처음 작성한 코드는 다음과 같다.
하지만 시간 초과 오류가 발생했다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
vector<int> arr(1000000);
for(int i=0; i<n; i++)
cin >> arr[i];
sort(arr.begin(), arr.end());
int m;
cin >> m;
vector<int> target(1000000);
for(int i=0; i<m; i++)
cin >> target[i];
for(int i=0; i<m; i++){
int left = 0, right = n-1;
while (left <= right){
int mid = (left + right) / 2; //중앙값 초기화
if (arr[mid] == target[i]){
cout << 1 << "\n";
break;
}
else if (arr[mid] > target[i]){
right = mid - 1;
}
else{
left = mid + 1;
}
}
cout << 0 << "\n";
}
return 0;
}
내가 작성한 함수로 시도했으나 자꾸 오류가 떠서
#include <algorithm>의 binary_search 함수를 사용해 해결했다.
'백준' 카테고리의 다른 글
백준 2468 안전 영역 c++ (0) | 2024.03.20 |
---|---|
백준 10816 숫자 카드 2 c++ (0) | 2024.03.14 |
백준 1431 시리얼 번호 c++ (0) | 2024.03.13 |
백준 10825 국영수 c++ (0) | 2024.03.13 |
백준 11659 구간 합 구하기 4 c++ (0) | 2024.03.12 |