- 문제
- 풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n = 0, value = 0;
vector<int> v;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> value;
v.push_back(value);
}
// 이진 탐색에 들어가기 전에 먼저 벡터 안의 데이터를 sort 해준다.
sort(v.begin(), v.end());
cin >> n;
// 이진 탐색 함수를 사용해 벡터 내부에 입력받은 값이 존재하는지 확인한다.
for (int i = 0; i < n; i++)
{
cin >> value;
cout << binary_search(v.begin(), v.end(), value) << ' ';
}
}
- 메모
이진 탐색을 사용해서 풀었지만 map으로도 풀 수 있는 문제다.
대신 이중for문을 사용하면 제한 시간이 초과되어 오답처리 되므로 주의해야 한다.
'코딩테스트 > 문제풀이' 카테고리의 다른 글
[백준/11659번/C++] 구간 합 구하기 4 (0) | 2024.08.23 |
---|---|
[백준/14425번/C++] 문자열 집합 (0) | 2024.08.22 |
☆ [백준/2309번/C++] 일곱 난쟁이 (0) | 2024.08.20 |
[백준/2587번/C++] 대표값2 (0) | 2024.08.19 |
[백준/2480번/C++] 주사위 세개 (0) | 2024.07.23 |