컨베이어에 도착한 물품을 순서대로 상자에 담아요. 상자 하나에 담을 수 있는 무게는 최대 capacity예요. 현재 상자에 다음 물품을 넣을 수 있으면 넣어요. 넣을 수 없으면 현재 상자를 닫고 새 상자에 그 물품을 넣어요. 물품 순서를 바꾸거나 앞서 닫은 상자에 다시 담을 수는 없어요.
int solution(vector<int> weights, int capacity)가 모든 물품을 담는 데 사용한 상자 수를 반환하도록 작성해 주세요. 물품이 없으면 상자를 사용하지 않아요.
매개변수와 반환값
weights의 길이n은 0 이상 500 이하예요.capacity는 1 이상 1,000 이하의 정수예요.- 각 물품 무게는 1 이상
capacity이하의 정수예요. - 반환값은 사용한 상자 수로, 0 이상
n이하예요.
예시
weights = [4, 6, 3, 7, 2],capacity = 10이면3을 반환해요. 상자별로[4, 6],[3, 7],[2]를 담아요.weights = [6, 6, 4],capacity = 10이면2를 반환해요. 첫 상자에[6], 둘째 상자에[6, 4]를 담아요.
실행용 입출력
채점 하네스가 입력을 읽고 solution을 호출해요. 첫 줄에 n capacity, 둘째 줄에 무게 n개를 입력해요. n = 0이면 둘째 줄은 비워 두어요. 하네스는 반환값을 출력하며, 직접 작성할 부분은 solution 함수예요.
예시 입력
5 10 4 6 3 7 2
예상 결과
3
예시 입력
3 10 6 6 4
예상 결과
2
핵심 개념
array-1d: 물품의 도착 순서를 유지해요.loops: 현재 상자의 상태를 다음 물품에 이어 사용해요.conditionals: 용량 초과와 정확한 일치를 구분해요.stl-vector: 주어진 벡터의 크기와 인덱스로 데이터를 읽어요.