[백준] 1920번:수 찾기

2021. 2. 6. 20:21Algorithm/백준

 

1920번: 수 찾기

첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들

www.acmicpc.net

 

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

int solution(vector<int>&num, int target) {
	int start = 0;int end = num.size() - 1;
	while (start <= end) {
		int mid = (start + end) / 2;
		if (num[mid] == target) return 1;
		if (num[mid] < target) start = mid + 1;
		else end = mid - 1;
	}
	return 0;
}

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

	int n, m, t;
	vector<int>num;

	cin >> n;
	for (int i = 0;i < n;i++) {
		cin >> t;
		num.push_back(t);
	}

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

	cin >> m;
	for (int i = 0;i < m;i++) {
		cin >> t;
		cout<<solution(num, t)<<'\n';
	}
}

'Algorithm > 백준' 카테고리의 다른 글

[백준] 1654번: 랜선 자르기  (0) 2021.02.07
[백준] 2805번: 나무 자르기  (0) 2021.02.07
[백준] 10816번: 숫자 카드2  (0) 2021.02.06
[백준] 10815번: 숫자 카드  (0) 2021.02.06
[백준] 2309번: 일곱 난쟁이  (0) 2021.02.05