문제 링크입니다: https://www.acmicpc.net/problem/10815
전형적인 이분 탐색 문제였습니다.
숫자들을 입력 받은 뒤 정렬을 한 뒤 이분 탐색을 진행합니다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
vector<int> v(N);
for (int i = 0; i < N; i++)
cin >> v[i];
sort(v.begin(), v.end());
int M;
cin >> M;
for (int i = 0; i < M; i++)
{
int num;
cin >> num;
int low = 0, high = N - 1;
bool searched = false;
while (low <= high)
{
int mid = (low + high) / 2;
if (v[mid] == num)
{
searched = true;
break;
}
else if (v[mid] < num)
low = mid + 1;
else
high = mid - 1;
}
if (!searched)
cout << 0 << " ";
else
cout << 1 << " ";
}
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 10816번 숫자 카드 2 (4) | 2018.11.16 |
---|---|
백준 2512번 예산 (0) | 2018.11.16 |
백준 1620번 나는야 포켓몬 마스터 이다솜 (0) | 2018.11.16 |
백준 16204번 카드 뽑기 (0) | 2018.11.15 |
백준 1300번 K번째 수 (2) | 2018.11.15 |