[BOJ]1920 - 수 찾기

yoon_H·2022년 5월 19일
0

BOJ

목록 보기
6/83

1920

전체코드

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;



int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	int n{ 0 };
	int m{ 0 };
	
	cin >> n;

	vector <int> arr(n);
	
	
	for (int i = 0; i < n; i++)
		cin >> arr[i];

	sort(arr.begin(), arr.end());

	cin >> m;

	for (int i = 0; i < m; i++)
	{
		int num{ 0 };
		cin >> num;
		if (binary_search(arr.begin(), arr.end(), num))
			cout << "1\n";
		else
			cout << "0\n";
		
	}

}

find 함수를 썼더니 시간초과가 나서 binary_search 함수를 사용했다.
그래도 똑같아서 가장 위의 두 코드를 사용해 cin, cout의 시간을 줄여줬다.

시간 초과는 해결되었으나 마지막 테스트 케이스에서 '틀렸습니다'가 나와서 인풋을 인덱스로 받아주고 bool it 을 생략해줬다.

통과!

구글링하니까 직접 이분 탐색 구현한 분이 많았다. 왜지?


참고자료

STL 이분탐색
C++ 시간초과

0개의 댓글