정답 코드
#include <bits/stdc++.h>
using namespace std;
int a[100005];
int n;
int binarysearch(int target){
int st = 0;
int en = n-1;
while(st <= en){
int mid = (st+en)/2;
if(a[mid] < target)
st = mid+1;
else if(a[mid] > target)
en = mid-1;
else
return 1;
}
return 0; // st > en일 경우 while문을 탈출
}
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i = 0; i < n; i++) cin >> a[i];
sort(a, a+n);
int m;
cin >> m;
while(m--){
int t;
cin >> t;
cout << BinarySearch(t) << '\n';
}
}
더 쉬운 방법 - binary_search 함수 쓰기
#include <bits/stdc++.h>
using namespace std;
int a[100005];
int n;
int main(void) {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for(int i = 0; i < n; i++) cin >> a[i];
sort(a,a+n);
int m;
cin >> m;
while(m--){
int t;
cin >> t;
cout << binary_search(a, a+n, t) << '\n';
}
}
'Algorithm > C++' 카테고리의 다른 글
[백준 2231] 분해합 (0) | 2023.08.19 |
---|---|
[백준 4344] 평균은 넘겠지 (0) | 2023.08.19 |
[백준 2003] 수들의 합 2 (0) | 2022.11.01 |
[백준 1806] 부분합 (0) | 2022.11.01 |
[백준 2230] 수 고르기 (0) | 2022.11.01 |
댓글