프로그래머스 Lv.1 예산
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function solution(d, budget) { let answer = 0; let result = 0; let d_sort = d.sort((a, b) => a-b); for(let i = 0; i < d.length; i++) { if(answer + d_sort[i+1] <= budget){ answer += d_sort[i]; result = i + 1; } else if(answer + d_sort[d_sort.length-1] <= budget) { result = i + 1; } } return result; } | cs |
인자로 받은 배열
d
를sort
를 이용하여 정렬한다.반복문으로
i
를 0부터d
의 길이만큼 반복한다.만약
answer
에d_sort[i+1]
를 더한 값이 예산인budget
값 보다 작거나 같으면answer
에d_sort[i]
를 더해주고,result
에는i+1
값을 할당한다.또 만약 전체의 배열을 전부 더해도 예산을 넘지 않는다면 ->
answer
에d_sort[d_sort.length]
을 더한 값이budget
보다 작거나 같다면
result
에i+1
값을 할당한다.그리고 부서 수를 더해준
result
값을 return 한다.