250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(프로그래머스 c++)예산 본문
728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12982
최대한 많은 부서에 예산을 줘야하기 때문에
주어진 d 배열을 오름차순으로 정렬한다.
이후 이진 탐색을 진행.
0 ~ mid 인덱스까지의 예산을 더하여 budget보다 작을 때까지의 front 값을 찾아 리턴하면 된다.
const binarySearch = (d, mid, budget) => {
let sum = 0;
for(let i = 0; i <= mid; i++){
sum += d[i];
if(sum > budget){
return true;
}
}
return false;
}
const solution = (d, budget) => {
let front = 0;
let back = d.length - 1;
d.sort((a, b) => a - b);
while(front <= back){
const mid = Math.floor((front + back) / 2);
if(binarySearch(d, mid, budget)){
back = mid - 1;
} else{
front = mid + 1;
}
}
return front;
}
728x90
반응형
'프로그래머스 알고리즘 > 1단계' 카테고리의 다른 글
(프로그래머스 c++)없는 숫자 더하기 (0) | 2021.10.07 |
---|---|
(프로그래머스 c++)약수의 개수와 덧셈 (0) | 2021.06.08 |
(프로그래머스 c++)음양 더하기 (0) | 2021.05.06 |
(프로그래머스 c++)로또의 최고 순위와 최저 순위 (0) | 2021.05.06 |
(프로그래머스 JS)나누어 떨어지는 숫자 배열 (0) | 2021.02.25 |