풀이
function solution(d, budget) { let aaa =d.sort((a,b)=>a-b) console.log(aaa) let happy = budget; let answer = []; for(let i=0; i<aaa.length; i++){ if(happy>aaa[i]){ happy -= aaa[i] answer.push(aaa[i]) }else if(happy===aaa[i]){ answer.push(aaa[i]) break } } return answer.length }
📝 풀이 설명
- sort를 사용해 정렬했다.
- 반복문을 사용해 들어오는 값과 정렬된 배열의 처음 값이랑 비교해 예산이 크면 예산에다가 배열 값을 빼고 변수에 넣고 뺀 배열의 값을 다른 배열에 넣는다.
- 그리고 만약 둘의 값이 같으면 빼기는 안 하고 그냥 배열의 값을 넣어준다.
- break를 넣은 이유는 [11,11,11] 이고 예산 값이 11이면 안끝나고 계속 반복하기 때문에 break를 넣어서 반복문을 중단시켰다.
- 그리고 answer의 배열의 길이가 정답이다.