코딩 테스트/백준

백준 - [단계별로 풀어보기 브루트 포스] 2839 설탕 배달

devrabbit22 2026. 4. 9. 23:00

이번 문제는 사칙연산을 이용해 규칙을 찾으려 할 수도 있지만, 브루트포스 방식을 사용하면 더 쉽게 해결할 수 있는 문제이다.

5kg 봉지를 최대한 사용하는 경우부터 확인하면서 남은 무게가 3kg 봉지로 채워지는지 검사하면 된다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    internal class BruteForce
    {
        static void Main(string[] args)
        {
            // 2839 설탕 배달
            // 5kg을 최대한 사용한 후 3으로 나누어지는지 확인
            // 배달해야 할 설탕의 총 무게 입력
            int N = int.Parse(Console.ReadLine());

            // 5kg 봉지를 최대한 많이 사용하는 경우부터 확인
            // N/5 는 사용할 수 있는 최대 5kg 봉지 개수
            for (int i = N / 5; i >= 0; i--)
            {
                // i개의 5kg 봉지를 사용했을 때 남는 설탕의 무게
                int remainder = N - (i * 5);

                // 남은 설탕이 3kg 봉지로 정확히 나누어 떨어지는지 확인
                if (remainder % 3 == 0)
                {
                    // 사용한 총 봉지 개수 출력
                    // (5kg 봉지 개수 + 3kg 봉지 개수)
                    Console.WriteLine(i + remainder / 3);
                    return;
                }
            }

            // 위 조건을 만족하는 경우가 없다면 정확히 만들 수 없는 경우
            Console.WriteLine(-1);
        }
    }
}

출력 결과 1
출력 결과 2