ALGORITHM/BOJ

[BOJ] 2776번 암기왕 (C++)

yegyeom 2021. 12. 20. 00:11

문제 (https://www.acmicpc.net/problem/2776)

 

2776번: 암기왕

연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며,

www.acmicpc.net

10816번 (숫자 카드 2) 문제와 매우 비슷한 문제이다!

이 문제도 upper_bound, lower_bound를 사용하여 해결했다.

 

upper_bound: 처음으로 value 값을 초과하는 원소의 주소

lower_bound: value 값 보다 크거나 같은 첫 번째 원소의 주소


[소스코드]

/*
BOJ 2776번: 암기왕
2021-12-19
*/
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
vector<int> v;
int tc, n, m, num;
cin >> tc;
for(int i = 0 ; i < tc ; i++) {
v.clear();
cin >> n;
for(int i = 0 ; i < n ; i++) {
cin >> num;
v.push_back(num);
}
sort(v.begin(), v.end());
cin >> m;
for(int i = 0 ; i < m ; i++) {
cin >> num;
auto upper = upper_bound(v.begin(), v.end(), num);
auto lower = lower_bound(v.begin(), v.end(), num);
if(upper - lower > 0) cout << 1 << '\n';
else cout << 0 << '\n';
}
}
return 0;
}
view raw 2776.cpp hosted with ❤ by GitHub