문제 |
1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net
코드 1 |
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<int> v(n);
for (int &i : v) cin >> i;
sort(v.begin(), v.end());
int m;
cin >> m;
while (m--) {
int tmp;
cin >> tmp;
cout << binary_search(v.begin(), v.end(), tmp) << '\n';
}
return 0;
}
설명 |
벡터 v를 정렬하고, std::binary_search(first, last, value) 함수로 주어진 숫자가 벡터에 존재하는지의 여부를 판별한다.
코드 2 |
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
unordered_map<int, bool> mp;
while (n--) {
int tmp;
cin >> tmp;
mp[tmp] = true;
}
int m;
cin >> m;
while (m--) {
int tmp;
cin >> tmp;
cout << mp[tmp] << '\n';
}
return 0;
}
설명 |
요소로의 접근이 빠른 unordered_map 자료구조로 각 숫자의 존재여부를 판별한다.
'PS > BOJ' 카테고리의 다른 글
[C++] BOJ (백준) 1966 : 프린터 큐 (0) | 2022.12.23 |
---|---|
[C++] BOJ (백준) 1929 : 소수 구하기 (0) | 2022.09.15 |
[C++] BOJ (백준) 1874 : 스택 수열 (0) | 2022.09.14 |
[C++] BOJ (백준) 1654 : 랜선 자르기 (0) | 2022.09.12 |
[C++] BOJ (백준) 1436 : 영화감독 숌 (0) | 2022.09.11 |