쿠폰 신청을 접수 순서대로 확인해요. costs[i]는 i번째 신청자에게 쿠폰을 발급하는 비용이에요. 비용이 남은 예산 이하이면 쿠폰을 발급하고 그 비용을 예산에서 빼요. 비용이 남은 예산보다 크면 그 신청자에게 발급하지 않고 다음 신청자를 확인해요. 접수 순서는 바꾸지 않아요.
int solution(vector<int> costs, int budget)가 쿠폰을 받은 신청자의 수를 반환해야 해요. 제공된 코드에서 잘못된 한 줄만 수정해 주세요.
매개변수와 반환값
- 신청 수
n은 1 이상 500 이하예요. - 각 비용은 1 이상 10,000 이하의 정수예요.
- 초기 예산은 0 이상 1,000,000 이하의 정수예요.
- 반환값은 발급한 쿠폰 수로, 0 이상
n이하예요.
예시
costs = [4, 8, 2, 3],budget = 10이면3을 반환해요. 첫 신청 후 남은 예산은 6이에요. 둘째 신청은 발급하지 않고, 셋째와 넷째 신청에는 발급해요.costs = [7, 1, 2],budget = 3이면2를 반환해요. 첫 신청은 발급하지 않지만 이후의 두 신청은 처리할 수 있어요.
실행용 입출력
첫 줄에 n budget, 둘째 줄에 신청 비용 n개를 입력해요. main은 함수 호출용 하네스이며 반환값을 출력해요.
예시 입력
4 10 4 8 2 3
예상 결과
3
예시 입력
3 3 7 1 2
예상 결과
2
핵심 개념
array-1d: 접수 순서를 유지하며 신청을 읽어요.loop-control: 이번 신청만 건너뛰는 것과 전체 종료를 구분해요.conditionals: 비용과 현재 남은 예산을 비교해요.stl-vector: 주어진 벡터의 크기와 인덱스로 데이터를 읽어요.