Problem Solving/이분 탐색

Problem Solving/이분 탐색

[백준] 2110 C++ 공유기 설치 [이분 탐색]

- 문제 설명 - 문제 풀이 N의 수가 2 > N >> C; for (int i = 0; i > arr[i]; sort(arr, arr + N); s = 1; // 최소 거리 e = arr[N - 1] - arr[0]; // 최대 거리 while (s = mid) { router++; // mid만큼 인접거리가 늘어나면 공유기 설치 spot = arr[i]; // 인접거리 갱신을 위해 } } if (router >= C) { ans = max(ans, mid); s = mid + 1; } else { e = mid - 1; } } cout

Problem Solving/이분 탐색

[백준] 2805 C++ 나무 자르기 [이분 탐색]

- 문제 설명 - 문제 풀이 이분 탐색을 활용해야 하는 문제다. 예제 1과 같이 4개의 나무, 7의 길이 만큼 가져가야 할 때를 예로 들어보자. 이분 탐색을 위해 최소 잘라내는 수 1 = s, 최대 자를 수 있는 길이를 나무중에 제일 큰 나무(20 = e)라고 해보자. 그럼 그 중간값 mid = (s + e) / 2 를 기준으로 잘라낸다. 잘라낸 길이의 합이 가져가야 할 길이 7보다 크다면 mid값을 높여아 하기 때문에 s = mid + 1로 , ans = mid 갱신 (마지막은 항상 7만큼 혹은 그보다 더 가져가야 할 것이므로 정답을 mid로 갱신) 잘라낸 길이의 합이 가져가야 할 길이 7보다 작다면 mid값을 낮춰야 하기 때문에 e = mid - 1 s 가 e보다 커질때 까지 반복한 후 그 순간 mi..

우현2
'Problem Solving/이분 탐색' 카테고리의 글 목록