선생님이 가진 사비를 털어 졸업생들에게 선물을 나눠주려합니다.
학생들은 각자 원하는 상품의 가격과 배송비를 제출하였습니다.
선생님이 가진 사비로 가장 많은 수의 학생에게 선물을 하려합니다.
(다만, 선생님은 한가지 상품의 가격만 50% 할인이 되는 쿠폰을 가집니다.)
최대 몇명의 학생에게 선물을 할 수 있는지 출력하시오.
첫 줄에는 선생님의 최대 사비가 입력되고
두번째 줄 부터 각 상품의 가격&배송비가 입력됩니다.
예시)
입력:
28
6 6
2 2
4 3
4 5
10 3
출력:
4
<script>
function solution(m,product){
let answer = 0;
let n = product.length;
product.sort((a,b)=>(a[0]+a[1])-(b[0]+b[1]));
for(let i=0; i<n; i++){
let money = m - (product[i][0]/2+product[i][1]);
let cnt = 1;
for(let j=0; j<n;j++){
if(j!==i && (product[j][0]+product[j][1]>money)) break;
if(j!==i && (product[j][0]+product[j][1]<=money)){
money -= product[j][0]+product[j][1];
cnt ++;
}
}
answer = Math.max(answer,cnt);
}
return answer;
}
let arr=[[6, 6], [2, 2], [4, 3], [4, 5], [10, 3]];
console.log(solution(28, arr));
</script>