물품을 같은 종류끼리 size개씩 묶어 포장해요. 서로 다른 종류를 한 묶음에 넣을 수 없고, size개보다 적게 남은 물품은 포장하지 않아요. kinds의 각 값은 물품 하나의 종류 번호예요.
int solution(vector<int> kinds, int m, int size)가 모든 묶음을 만든 뒤 포장하지 못한 물품의 총개수를 반환하도록 빈칸을 채워 주세요. collect는 종류별 물품 수를 구하고, measure는 한 종류에서 포장하지 못한 물품 수를 구해요.
매개변수와 반환값
kinds의 길이n은 1 이상 500 이하예요.- 종류의 수
m은 1 이상 20 이하이고, 각 종류 번호는 1 이상m이하예요. size는 1 이상 100 이하예요. 없는 종류도 있을 수 있어요.- 반환값은 포장하지 못한 물품 수의 합인 정수예요.
예시
kinds = [1, 2, 1, 1, 2, 3, 1],m = 3,size = 3이면4를 반환해요. 종류별로 4, 2, 1개가 있어 각각 1, 2, 1개가 남아요.kinds = [1, 1, 2, 2, 2, 2],m = 2,size = 2이면0을 반환해요. 두 종류 모두 남는 물품 없이 포장돼요.
실행용 입출력
첫 줄에 n m size, 둘째 줄에 종류 번호 n개를 입력해요. main은 이 값으로 함수를 호출하고 반환값을 출력하는 하네스예요.
예시 입력
7 3 3 1 2 1 1 2 3 1
예상 결과
4
예시 입력
6 2 2 1 1 2 2 2 2
예상 결과
0
핵심 개념
counting-aggregation: 위치별 값으로 종류별 개수를 모아요.function-design: 개수 수집과 한 종류 계산을 조합해요.loops: 1부터 m까지의 종류 번호를 순회해요.stl-vector: 주어진 벡터의 크기와 인덱스로 데이터를 읽어요.