728x90
문제
https://www.acmicpc.net/problem/1920
문제 분석
두가지의 변수 집합이 주어지고, 첫번째 집합에 두번째 집합에 해당하는 변수가 존재한다면 1을, 존재하지 않는다면 0을 출력한다.
알고리즘 설계
정수형 변수 n, m, input, num을 선언하고, int형을 가진 vector v1을 선언해준다 .
n은 첫번째 집합의 개수, m은 두번째 집합의 개수, input은 반복문을 돌며 입력 받을 변수, num은 이분 탐색을 돌리고 받을 변수이다. 또 v1은 첫번째 집합의 변수를 담을 vector이다.
n을 입력 받고, 그 값에 맞춰 반복문을 돌려준다.
반복문 안에서 input으로 입력 받고, v1에 넣어준다.
이후 v1을 정렬해주고,
m을 입력 받은 후 반복문을 돌려준다.
input으로 입력 받고, *lower_bounce을 v1값과 input값을 넣은 값을 num에 넣고,
num과 input이 같다면 1을 같지 않다면 0을 출력한다.
유의점
이분 탐색을 유의해서 작성하자 !
코드
#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, m, input, num;
vector<int> v1;
cin >> n;
for (int i = 0; i < n; ++i)
{
cin >> input;
v1.push_back(input);
}
sort(v1.begin(), v1.end());
cin >> m;
for (int i = 0; i < m; ++i)
{
cin >> input;
num = *lower_bound(v1.begin(), v1.end() - 1, input);
if (num == input)
cout << "1\n";
else
cout << "0\n";
}
}
728x90
'ALGORITHM > C++ - 백준' 카테고리의 다른 글
[백준 2805] 나무 자르기 (1) | 2023.11.22 |
---|---|
[백준 5397] 키로거 (0) | 2023.11.14 |
[백준 25192] 인사성 밝은 곰곰이 (1) | 2023.11.13 |
[백준 11004] K번째 수 (0) | 2023.11.13 |
[백준 10825] 국영수 (0) | 2023.11.09 |
댓글