-
https://www.acmicpc.net/problem/1920
백준 온라인저지 1920 수 찾기 문제입니다.
아이디어
이진탐색의 기본 코드 유형의 문제입니다. STL container의 Bineary_Search() 함수로 풀이도 해보았습니다.
#include <iostream> #include <vector> #include <algorithm> using namespace std; int n, m; vector<int> A; vector<int> B; vector<int> sol; void input() { int k; cin >> n; for (int i = 0; i < n; i++) { cin >> k; A.push_back(k); } cin >> m; for (int i = 0; i < m; i++) { cin >> k; B.push_back(k); } } void solution() { sol = vector<int>( m, 0); sort(A.begin(), A.end()); for (int i = 0; i < B.size();i++) { int lo = 0, hi = A.size() - 1; while (lo <= hi) { int mid = (hi+lo) / 2; if (A[mid] == B[i]) { sol[i] = 1; break; } if (A[mid]>B[i]) { hi = mid - 1; } else { lo = mid + 1; } } } for (auto iter : sol) { cout << iter << "\n"; } } int main(void) { input(); solution(); } /* int main(void) { ios::sync_with_stdio(0); cin.tie(0); int k; cin >> n; for (int i = 0; i < n; i++) { cin >> k; A.push_back(k); } sort(A.begin(), A.end()); cin >> m; for (int i = 0; i < m; i++) { cin >> k; cout << (int)binary_search(A.begin(), A.end(), k)<<"\n"; } } */
'알고리즘 > 백준' 카테고리의 다른 글
BOJ 3197 백조의 호수 / C++ (0) 2022.09.02 BOJ 9379 탈옥 / C++ (0) 2022.09.02 BOJ 12100 2048(Easy) / C++ (0) 2022.07.31 BOJ 14891 톱니바퀴 / C++ (0) 2022.07.27 BOJ 7579 앱 / C++ (0) 2022.07.27 댓글