SFPC/2021

2021 SFPC pB1 ver.1

열정아빠와아들 2023. 2. 4. 19:20
// ver.1 가장 비효율적 코드(for문)
#include <stdio.h>

int main()
{
	// n = 한라봉 무게, ans = 박스의 개수 저장
	int n, ans = -1; 

	scanf("%d", &n);

	// t = 한라봉의 무게를 저장시켜놓은 변수인데 이 변수를 기준으로 아래 for 문이 돌아간다.
	int t = n; 

	// i = 10kg짜리 박스를 사용하는 개수를 저장한다.
	for (int i = 0; i <= t; i++) 
	{
		// 만약 10kg 박스만으로 한라봉을 포장할 수 없다면 for문 나가기
		if (i * 10 > t) break;

		// j = 5kg짜리 박스를 사용하는 개수를 저장한다.
		for (int j = 0; j <= t; j++) 
		{
			// 만약 10kg 박스와 5kg 박스만으로 한라봉을 포장할 수 없다면 for문 나가기
			if (i * 10 + j * 5 > t) break;

			// k = 3kg짜리 박스를 사용하는 개수를 저장한다.
			for (int k = 0; k <= t; k++)
			{
				// 만약 10kg, 5kg, 3kg 박스만으로 한라봉을 포장할 수 없다면 for문 나가기.
				int a = i * 10 + j * 5 + k * 3;
				if (a > t) break;

				// b = 남은 한라봉 무게를 저장.
				int b = t - a;
				int l = b;

				// 만약 ans에 한 번도 값이 들어간 적이 없거나 ans이 모든 상자 사용값보다 크다면 ans 바꾸기
				if (ans == -1 || (ans > i + j + k + l))
					ans = i + j + k + l;
			}
		}
	}

	// 박스의 개수 출력
	printf("%d", ans);
}