문제
예산
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> d, int budget) {
int max = 0;
int sum = 0;
sort(d.begin(), d.end());
for(int i = 0 ; i < d.size(); i++){
sum += d[i];
if(sum <= budget)
max++;
}
return max;
}
해설
첫 번째로 백터들을 Sort
로 정렬시킨 후 하나씩 더해서 합이 budget
의 숫자보다 작거나 같으면 max
변수를 1씩 더해준다
문제의 해석이 중요한 문제이다.
물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다.
라는 말이 예를들어 예산이 9원이면 9원을 남김없이 써야하는것 같지만 그렇지 않다.
예를들어 {1,2,3,4,5}
라는 부서에 예산이 9원
이면 1원 2원 3원을 주어서 총 6원을 주어도 상관없다.
하지만 {1,2,3,3,5}
인 부서인 경우에는
1원 2원 3원만 줄 수 없다.
왜냐하면 1원 2원 3원에서 나머지 3원을 더 주면 총 9원 이기 떄문이다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 내 마음대로 정렬하기 (0) | 2021.08.10 |
---|---|
[프로그래머스] [1차][비밀지도] (0) | 2021.06.29 |
[프로그래머스] [1차][다트게임] (0) | 2021.06.29 |
[프로그래머스] 실패율 (0) | 2021.06.29 |
[프로그래머스] 2016년 (0) | 2021.06.29 |