알고리즘 문제풀이

백준 10815번 숫자 카드 C++/이진탐색/실버5

yoogani 2023. 10. 27. 22:48

https://www.acmicpc.net/problem/10815

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

상근이가 갖고있는 카드를 ch에 저장

정렬한다. (이진탐색을 사용하기 위해)

제시하는 카드를 가지고있으면 1 없으면 0을 출력한다.

 

#include<iostream>
#include<algorithm>
#include <vector>

using namespace std;

int main()
{
	//ios_base::sync_with_stdio(false);
	ios_base::sync_with_stdio(0); cin.tie(0);

	int n, m,a,b;
	
	cin >> n;
	vector<int> ch(n);

	for (int i = 0; i < n; i++) {
		// 상근이가 가지고 있는 카드 
		cin >> m;
		ch[i] = m;
	}

	sort(ch.begin(), ch.end());
	
	cin >> a;
	for (int i = 0; i < a; i++) {
		
		cin >> b;

		if(binary_search(ch.begin(), ch.end(), b))
			cout << "1 ";
		else cout << "0 ";
	}

	return 0;
}