❓ 문제 ❓
손님이 요청한 부품 번호의 순서대로 부품을 확인해 있으면 yes, 아님 no를 출력해라
💯 문제 풀이 💯
sort 후 이진 탐색으로 찾으면 간단하게 풀린다. set를 사용해도 된다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, m; 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 tmp; cin >> tmp;
int left = 0, right = n - 1;
bool aws = false;
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == tmp) {
aws = true;
break;
}
if (arr[mid] < tmp)
left = mid + 1;
else if(tmp < arr[mid])
right = mid - 1;
}
if (aws)
cout << "yes" << " ";
else
cout << "no" << " ";
}
}