티스토리 뷰
반응형
⊙ 문제
⊙ 입력
⊙ 출력
⊙ 예제 입출력
⊙ 알고리즘 분류
- 이분 탐색
⊙ 문제 접근 과정
문제를 보고 이진 탐색으로 접근해야겠다고 생각했다.
순차 탐색으로 문제를 접근하면 시간 복잡도가 O(N)이다.
그렇지만 이진탐색으로 접근한다면 시간 복잡도를 O(logN)으로 줄일 수 있다.
이진 탐색을 STL 라이브러리를 이용하지 않고 직접 구현하여 문제를 풀어봤다.
⊙ 문제 풀이
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int binarySearch(vector<int>& basic,int target, int start, int end) {
while (start <= end) {
int mid = (start + end) / 2;
if(basic[mid]==target)
return mid;
else if(basic[mid] > target)
end = mid - 1;
else
start = mid + 1;
}
return -1;
}
int N,M;
vector<int> A;
vector<int> target;
int main() {
cin >> N;
for (auto i = 0; i < N; i++)
{
int x;
cin>>x;
A.push_back(x);
}
sort(A.begin(),A.end());
cin>> M;
for (auto i = 0; i< M; i++) {
int x;
cin >> x;
target.push_back(x);
}
for(auto i =0; i<M; i++) {
int result = binarySearch(A,target[i],0,N-1);
if(result!=-1) {
cout << "1\n";
} else cout <<"0\n";
}
}
⊙ 결과
⊙ 마무리
이진 탐색에 대해 정리하고 글을 작성할 예정이다.
좋아요는 로그인하지 않아도 누를 수 있습니다!
728x90
반응형
'백준 온라인 저지 [BOJ] > C++ [CPP]' 카테고리의 다른 글
[백준(BOJ)] 10815번 : 숫자 카드 - C++[CPP] (0) | 2021.05.10 |
---|---|
[백준(BOJ)] 2805번 : 나무 자르기 - C++[CPP] (0) | 2021.05.10 |
[백준(BOJ)] 2631번 : 줄세우기 - C++[CPP] (0) | 2021.05.08 |
[백준(BOJ)] 2096번 : 내려가기 - C++[CPP] (0) | 2021.05.07 |
[백준(BOJ)] 5585번 : 거스름돈 - C++[CPP] (0) | 2021.05.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바스크립트
- CPP
- java
- 쉽게배우는
- 자바
- 연습문제
- 쉽게배우는자바프로그래밍
- Web
- 정답
- BFS
- Python
- 정리
- 프로그래머스
- 우종정
- 해답
- 파이썬
- 운영체제
- 알고리즘
- 백준
- 답
- 그리디
- C++
- 쉽게 배우는 자바 프로그래밍
- 문자열
- OS
- py
- JS
- 구현
- 정렬
- 풀이
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함