c++ binary_search()가 이미 stl로 있다는걸 기억하고, 이분탐색 문제의 경우 이 stl을 활용하도록 하자.
#include <bits/stdc++.h>
using namespace std;

int a[100'005];
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";
	}
}

이분탐색의 직접 구현을 공부하고 외워가고 있었는데, stl 에도 binary_search()라고 구현되어있는 이분탐색 내용이 이미 있었다. 결국에는 알고리즘 코딩테스트에서 이분탐색을 사용하여야 할 때에는 이런 형태의 stl함수를 사용하여서 풀도록 하자. 혹시 모를 직접 구현에서 실수할 수 있다.

 

  Comments,     Trackbacks