반응형
● 문제 접근 과정
1. 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다.
2. n값 만큼 무게를 맞춰야 하기에 일단 n값을 입력 받는다.
3. 5KG 짜리 봉지 반복문과 3KG 짜리 봉지 반복문을 만들어 준다.
4. 3KG * j + 5KG * i 값이 n값과 같아야 하기 때문에, 조건문을 적어주고, 조건에 하나도 해당이 되지 않는다면, 카운터 변수를 이용하여 -1를 출력한다.
● 구현
#include <algorithm>
#include <cstring>
#include <iostream>
using namespace std;
int main(void) {
int n;
int cnt = 0;
int min = 5001;
cin >> n;
for (int i = 0; i < n; i++) // 5KG 짜리 봉지
{
for (int j = 0; j < n; j++) // 3KG 짜리 봉지
{
if ((i * 5) + (j * 3) == n && i + j < min) {
min = i + j;
cnt++;
}
}
}
if (cnt == 0)
cout << -1;
else
cout << min;
}
https://www.acmicpc.net/problem/2839
반응형