← 실전 문제

두 재료로 맞추는 용량

C++완성형

두 종류의 재료가 각각 first, second 단위씩 담긴 묶음으로 있어요. 묶음을 쪼개지 않고 몇 개씩 골라 정확히 target 단위를 만들어요. 사용한 전체 묶음 수의 최솟값을 구하고, 만들 수 없으면 -1을 반환해요. 재료 묶음은 충분히 많아요.

int solution(int first, int second, int target)가 요구한 값을 반환하도록 함수를 작성해 주세요.

매개변수와 반환값

first와 second는 각각 150, target은 01,000인 정수예요. 두 묶음 크기가 같을 수도 있어요. target=0이면 아무것도 고르지 않아 0을 반환해요. 반환값은 -1 또는 0~target인 정수예요.

예시

  1. first=6, second=4, target=12이면 2를 반환해요. 6단위 두 묶음으로 만들면 총 두 개예요.
  2. first=4, second=3, target=6이면 2를 반환해요. 3단위 두 묶음으로 정확히 6을 만들어요.

실행용 입출력

한 줄에 first second target을 입력해요. main은 입력을 매개변수로 바꾸고 반환값을 출력하는 채점 하네스예요. 풀이 대상은 solution 함수예요.

예시 입력

6 4 12

예상 결과

2

예시 입력

4 3 6

예상 결과

2
핵심 개념
  • brute-force: 제한된 후보를 빠짐없이 검사해요.
  • number-theory-basic: 몫과 나머지의 의미를 구분해요.

코드 작성과 채점은 로그인 후 이용해요

로그인하고 풀기