문제 (https://www.acmicpc.net/problem/2776)
2776번: 암기왕
연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며,
www.acmicpc.net
10816번 (숫자 카드 2) 문제와 매우 비슷한 문제이다!
이 문제도 upper_bound, lower_bound를 사용하여 해결했다.
upper_bound: 처음으로 value 값을 초과하는 원소의 주소
lower_bound: value 값 보다 크거나 같은 첫 번째 원소의 주소
[소스코드]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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; | |
} |

'ALGORITHM > BOJ' 카테고리의 다른 글
[BOJ] 17070번 파이프 옮기기 1 (C++) (0) | 2021.12.21 |
---|---|
[BOJ] 1477번 휴게소 세우기 (C++) (0) | 2021.12.21 |
[BOJ] 2343번 기타 레슨 (C++) (0) | 2021.12.20 |
[BOJ] 10816번 숫자 카드 2 (C++) (0) | 2021.12.19 |
[BOJ] 1654번 랜선 자르기 (C++) (0) | 2021.12.19 |