본문 바로가기

알고리즘/이분탐색5

백준 1654번 : 랜선 자르기 문제 링크 : www.acmicpc.net/problem/1654 내 풀이(2021.1.21) : #include #include #include using namespace std; int lan[10000]; int K, N; int get_N(int mid) { int num = 0; for (int i = 0; i > K >> N; for (int i = 0; i > lan[i]; } sort(lan, lan + K); long lon.. 2021. 1. 21.
백준 2805번 : 나무 자르기 문제 링크 : www.acmicpc.net/problem/2805 내 풀이(2021.1.17) : #include #include using namespace std; long long tree[1000000]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; long long M; cin >> N >> M; for (int i = 0; i > tree[i]; } int start = 0, mid, end = 1000000000; long long total_cnt = 0; while (start 0) total_cnt += cut; } if (total_cnt == M).. 2021. 1. 17.
백준 1920번 : 수 찾기 문제 링크 : www.acmicpc.net/problem/1920 내 풀이(2021.1.16) : #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; vector A; for (int i = 0; i > temp; A.push_back(temp); } sort(A.begin(), A.end()); int M; cin >> M; vector X; for (int i = 0; i > temp; X.push_bac.. 2021. 1. 16.
이분 탐색 개념 - 선형 탐색(순차 탐색)의 O(n)를 O(logn)으로 줄여줌 - sort 함수로 정렬을 먼저 시행한 후에, 이분 탐색 - sort()가 arr와 vec 둘 다 가능한 것처럼 binary_search(), lower_bound(), upper_bound() 모두 arr와 vec 둘 다 가능 - 아래와 같이 초기화했다고 가정하겠다. int arr[] = { 4, 12, 11, 10, 4, 2, 4, 5, 14, 1 }; int N = sizeof(arr) / sizeof(int); sort(arr, arr + N); - 정렬 후에의 원소 구성은 다음과 같다. 1 2 4 4 4 5 10 11 12 14 원소 1개를 찾을 때 1) 존재 유무를 찾을 때 cout 2021. 1. 16.