728x90
출처
https://www.acmicpc.net/problem/1920
내 풀이
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int N = 0, M = 0;
int input = 0;
vector<int>v;
vector<int>v2;
int main()
{
//cin >> N;
scanf_s("%d", &N);
for (int i = 0; i < N; i++)
{
scanf_s("%d", &input);
v.push_back(input);
}
//cin >> M;
scanf_s("%d", &M);
for (int i = 0; i < M; i++)
{
scanf_s("%d", &input);
v2.push_back(input);
}
//이진 탐색을 진행하려면 사전에 정렬이 필요함
sort(v.begin(), v.end());
for (int i = 0; i < M; i++)
{
printf("%d\n", binary_search(v.begin(), v.end(), v2[i]));
//cout << binary_search(v.begin(), v.end(), v2[i]) << endl;
}
}
해설
벡터 v,v2를 선언하여 v, v2에 각각 입력을 받았다.
binary_search를 사용하기 위해서는 사전에 미리 정렬이 필요한데 값이 있는지 확인해야할 v 벡터만 정렬시킨 후
밑에서 정답을 출력하였다.
느낀점
binary_search 푸는 방법을 알았고 생각보다 간단했다. 펄크루트 영상에 나온 인턴 코딩테스트를 확인해보니 문자열과 노드 탐색이 나온다고 한다. 그쪽을 열심히 풀어봐야겠다.
'백준 코딩테스트 > 실버' 카테고리의 다른 글
2164) 카드2 (C++) (0) | 2022.05.05 |
---|---|
18258) 큐 2 (C++) (0) | 2022.05.04 |
11053) 가장 긴 증가하는 부분 수열 (C++) (0) | 2022.04.30 |
9327) 이장님 초대 (C++) (0) | 2022.04.28 |
2156) 포도주 (C++) (0) | 2022.04.28 |