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()로 해도 됐었던 것 같다.
'알고리즘' 카테고리의 다른 글
BOJ 2798 블랙잭 (0) | 2019.09.10 |
---|---|
BOJ 1182 부분수열의 합 (0) | 2019.09.10 |
2018 kakao blind recruitment 길 찾기 게임 (0) | 2019.09.09 |
2017 kakao blind recruitment 3차 자동완성 (0) | 2019.09.06 |
2017 kakao blind recruitment 3차 파일명 정렬 (0) | 2019.09.05 |