programmers.co.kr/learn/courses/30/lessons/12982
코딩테스트 연습 - 예산
S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는
programmers.co.kr
- 간단히 정렬 후 budget 보다 커지면 loop를 멈추는 식으로 계산할 수 있다.
더보기
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> d, int budget) {
int answer = 0;
const int dSize = d.size();
for (int lhs = 0; lhs < dSize; lhs++)
{
for (int rhs = 0; rhs < dSize; rhs++)
{
if (lhs == rhs)
continue;
int& lhsVal = d[lhs];
int& rhsVal = d[rhs];
if (lhsVal < rhsVal)
{
int temp = lhsVal;
lhsVal = rhsVal;
rhsVal = temp;
}
}
}
int sum = 0;
int cnt = 0;
for (int idx = 0; idx < dSize; idx++)
{
int checkVal = sum + d[idx];
if (checkVal > budget)
{
break;
}
else
{
sum = checkVal;
cnt++;
}
}
answer = cnt;
return answer;
}
int main()
{
vector<int> d = {1,3,2,5,4};
int budget = 9;
int ans = solution(d, budget);
printf("%d\n", ans);
return 0;
}
'Coding Problem > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv1] - 나누어 떨어지는 숫자 배열 (0) | 2021.04.29 |
---|---|
[프로그래머스/Lv1] - 수박수박수박수박수박수? (0) | 2021.04.29 |
[프로그래머스/Lv1] - 문자열을 정수로 바꾸기 (0) | 2021.04.25 |
[프로그래머스/Lv1] - 내적 (0) | 2021.04.25 |
[프로그래머스/Lv1] - 음양 더하기 (0) | 2021.04.25 |