← 실전 문제

같은 간격으로 나누는 묶음

C++빈칸 채우기

두 종류의 부품을 각각 같은 크기의 묶음으로 나눠요. 어느 종류에서도 부품이 남으면 안 돼요. 묶음 크기는 cap 이하여야 해요. 가능한 묶음 크기 중 가장 큰 값을 구해요.

int solution(int first, int second, int cap)가 요구한 값을 반환하도록 빈칸을 채워 주세요.

매개변수와 반환값

first와 second는 각각 11,000인 부품 수예요. cap은 1100이에요. 반환값은 두 수를 모두 나누는 1~cap의 정수예요. measure는 두 수의 최대공약수를 반환해요.

예시

  1. first=24, second=36, cap=8이면 6를 반환해요. 공약수 중 8 이하의 가장 큰 값은 6이에요.
  2. first=18, second=30, cap=10이면 6를 반환해요. 최대공약수 6이 상한 10 이하라 6을 사용해요.

실행용 입출력

한 줄에 first second cap을 입력해요. main은 입력을 매개변수로 바꾸고 반환값을 출력하는 채점 하네스예요. 풀이 대상은 solution과 제공된 보조 함수의 빈칸이에요.

예시 입력

24 36 8

예상 결과

6

예시 입력

18 30 10

예상 결과

6
핵심 개념
  • number-theory-basic: 몫과 나머지의 의미를 구분해요.
  • function-design: 보조 함수의 인자와 반환 계약을 연결해요.
  • loops: 다음 반복으로 이어지는 상태를 확인해요.

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

로그인하고 풀기