문제: https://programmers.co.kr/learn/courses/30/lessons/43237
이분 탐색 문제입니다.
지방의 갯수를 M개라 한다면, 정해진 예산으로 할당이 가능한지 판단하는데 O(M)이 걸립니다.
그러므로 예산을 정하는 로직을 로그시간에 처리해야합니다. 그래서 이분탐색이 필요합니다.
한 가지 주의해야 할 것은 오버플로우 입니다.
예산의 총액 상한액이 10억이지만,
mid = (lower + upper ) / 2 를 구하는 과정에서 lower + upper는 INT 범위를 초과할 수 있습니다.
코드: https://github.com/cottory/algorithm/blob/master/PROGRAMMERS/PG43237.cc
'Algorithm > Programmers' 카테고리의 다른 글
[코딩테스트 연습] 정수 삼각형 (0) | 2020.07.21 |
---|---|
[코딩테스트 연습] 베스트 앨범 (0) | 2020.07.14 |
[코딩테스트 연습]다리를 지나는 트럭 (0) | 2020.07.07 |
[코딩테스트 연습] 디스크 컨트롤러 (0) | 2020.06.30 |
[코딩테스트 연습] 이중우선순위큐 (0) | 2020.06.18 |