문제
https://www.acmicpc.net/problem/2776
두 vector에 숫자들을 저장하고 b배열에 있는 숫자들이 a에 있으면 1을 출력하고 없으면 0을 출력하기
이렇게 문제를 풀기로 했다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> a,b;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,m,o;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> m;
a.resize(m);
for (int i = 0; i < m; i++)
{
cin >> a[i];
}
//for (auto v : a) cout << v << " ";
cout << endl;
//정렬 (이진 탐색을 위해 꼬오옥 필요!)
sort(a.begin(), a.end());
cin >> o;
b.resize(o);
for (int i = 0; i < o; i++)
{
cin >> b[i];
}
//for (auto v : b) cout << v << " ";
cout << endl;
for (int i = 0; i < o; i++)
{
if (binary_search(a.begin(), a.end(), b[i]))
{
cout << 1 << "\n";
}
else
{
cout << 0 << "\n";
}
}
}
return 0;
}
처음엔 for문으로 다 돌릴려고 했는데 시간초과가 떴다
auto it = find(a.begin(), a.end(), b[i]);
if (it != a.end())
{
cout << 1 << "\n";
}
else
{
cout << 0 << "\n";
}
그래서 a배열을 sort로 정렬하고 binary search로 동일하게 구현
다행히 시간초과도 통과!
백준 //선분 위의 점//11663//정렬(Sorting)**과 **이분 탐색(Binary Search) (0) | 2025.01.19 |
---|---|
항해99 백준 2343번 // 블루레이 강의 (0) | 2025.01.17 |
항해 99// 백준 랜선 자르기//이진탐색//c++ (1) | 2025.01.15 |
백준 17478 🤔재귀 함수가 뭔가요? (1) | 2025.01.06 |
백준 4803 : Tree (0) | 2025.01.06 |