알고리즘
programmers 예산
므낫
2019. 9. 9. 13:27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
def solution(budgets, M):
answer = 0
# 크기 순 정렬
budgets.sort()
if sum(budgets) < M:
return budgets[-1]
left = 0
right = budgets[-1]
while right >= left:
mid = (left+right)//2
result = 0
for bd in budgets:
if bd<mid:
result+=bd
else:
result+=mid
if result > M:
right = mid-1
else:
answer = mid
left = mid+1
return answer
|
cs |
이진탐색을 사용하는 문제였다.
크기 순 정렬은 총합이 예산보다 작을 경우 제일 큰 원소를 리턴하기 위해 사용하였는데,
지금 생각하니 그냥 max()로 해도 됐었던 것 같다.