본문 바로가기
프로그래머스

예산

by paysmile 2019. 9. 23.
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(vector<int> budgets, int M) {
	int answer = 0;
	int high = -1;
	int low = 0;

	for (int i = 0; i < budgets.size(); i++)
		high = max(high, budgets[i]);

	while (low <= high) {
		int mid = (low + high) / 2;
		long long sum = 0;

		for (int i = 0; i < budgets.size(); i++) {
			if (budgets[i] > mid)
				sum += mid;
			else {
				sum += budgets[i];
			}
		}
		if (sum <= M) {
			answer = mid;
			low = mid+1;
		}
		else
			high = mid-1;
	}
	return answer;
}

'프로그래머스' 카테고리의 다른 글

섬 연결하기  (0) 2019.09.25
가장 먼 노드  (0) 2019.09.23
정수 삼각형  (0) 2019.09.23
단속 카메라  (0) 2019.09.23
타일 장식물  (0) 2019.09.16