[이것이 코딩 테스트다] 부품 찾기

고재욱·2021년 9월 21일
0

❓ 문제 ❓
손님이 요청한 부품 번호의 순서대로 부품을 확인해 있으면 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" << " ";
	}	
}

0개의 댓글