두 종류의 재료가 각각 first, second 단위씩 담긴 묶음으로 있어요. 묶음을 쪼개지 않고 몇 개씩 골라 정확히 target 단위를 만들어요. 사용한 전체 묶음 수의 최솟값을 구하고, 만들 수 없으면 -1을 반환해요. 재료 묶음은 충분히 많아요.
int solution(int first, int second, int target)가 요구한 값을 반환하도록 함수를 작성해 주세요.
매개변수와 반환값
first와 second는 각각 150, target은 01,000인 정수예요. 두 묶음 크기가 같을 수도 있어요. target=0이면 아무것도 고르지 않아 0을 반환해요. 반환값은 -1 또는 0~target인 정수예요.
예시
first=6, second=4, target=12이면2를 반환해요. 6단위 두 묶음으로 만들면 총 두 개예요.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: 몫과 나머지의 의미를 구분해요.