
풀이
- N : 설탕 무게, div5 : 5kg 봉지 수 변수 정의 및 초기화
- N을 입력받아서 5로 나눈 값을 div5에 대입
- 1번의 결과가 0 이상일 경우 while문 진입
2-1. 2를 만족하고, (N-5*div5)(5kg 봉지에 담고 남은 설탕 무게)가 3으로 나누어 떨어질 경우
-> ans + (N-5*div5)/3 (5kg 봉지 수+3kg 봉지 수) 를 출력한 뒤 프로그램 종료.
2-2. 2를 만족하지만 2-1의 조건은 만족하지 않는다면
-> 5kg 봉지 수를 한 개 줄이고 2번부터 반복
- while문을 탈출했다는 건 ans이 음수라는 뜻이므로 5kg, 3kg 봉지로 설탕 Nkg를 나눌 수 없다.
-> 따라서 -1 출력
#include <iostream>
using namespace std;
int main()
{
int N, div5 = 0;
cin >> N;
div5 += N / 5;
while (div5 >= 0)
{
if ((N - 5 * div5) % 3 == 0)
{
cout << div5 + (N - 5 * div5) / 3;
return 0;
}
div5--;
}
cout << -1;
}