Problem Solving

boj 2512 : 예산

1ssrek 2016. 8. 10. 20:09

boj 2512 : 예산


2개의 이분탐색으로 해결.

1. 총 예산(M)을 벗어나지 않는 상한액의 최대값을 이분탐색.

2. 상한액이 주어질 때의 예산합을 이분탐색으로 구현

2-1. 요청비용들을 오름차순으로 정렬한 후 정렬된 요청비용배열 a에 대해 psum배열을 만들어줌 (psum[i] : i번째 요청까지의 금액)

2-2. a[i] <= '상한액'인 최대 i를 이분탐색으로 찾음.

2-3. psum[i] + (N-i)*money 가 money일떄의 예산합


K를 주어진 요청 중 최대비용이라 할 때,

시간복잡도는 NlogN(정렬) + log(K)*log(N)으로 NlongN.


ㅜㅜ이분 탐색 너무 헷갈린다

많이 풀어봐야할듯