백준 문제풀이/브론즈1

백준 2839번 - 설탕 배달

void_melody 2021. 12. 10. 02:57

 

https://www.acmicpc.net/problem/2839

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

나의 사고과정)

5kg짜리 갯수와 3kg짜리 갯수의 한계치는 입력 받은 값에서 가장 작은 무게인 3kg짜리를 나눈 값이다.(왜냐하면 3kg짜리만 계속하면 그게 가장 봉지 갯수가 크니까)

그래서 이걸 max 값으로 한 다음 반복문으로 가능한 조합을 다 vector에 넣고 가장 작은 값을 출력하게 했다.

수식에 해당하는 문제인데 난 수식이라기 보단... 

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main()
{
	std::cin.tie(NULL);
	std::ios::sync_with_stdio(false);

	int input;
	cin >> input;

	int max = input / 3;
	
	vector<int> v;

	for (int i = 0; i <= max; i++)
	{
		int five_result = 5 * i;
		for (int j = 0; j <= max; j++)
		{
			int three_result = 3 * j;
			if (input == (five_result + three_result))
			{
				v.push_back(i + j);
			}
		}
	}
	if (v.empty())
		cout << -1;
	else
		cout << *min_element(v.begin(), v.end());

	return 0;
}

다른 분들은 수식으로 풀었던데... 시간 되면 수식으로도 풀어봐야겠다.