Algorithm/BOJ

[BOJ] 2839 설탕 배달

yeeendy 2023. 1. 25. 17:53
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BOJ2839
{
    class Program
    {
        static void Main(string[] args)
        {
            // 입력 받는 무게
            int input = int.Parse(Console.ReadLine());
            // 봉지 갯수
            int count = 0;

            // while문으로 input값이 0보다 클때까지 반복
            // - 루프 한번이 돌면 input에는 계산된 나머지가 계속 남게됨. 나머지 값을 계속 체크해주는 것
            // - 1. 3의 배수인지 5의 배수인지 체크
            // - 2. 두 경우가 아니라면(ex : 17) 우선 5로 빼주고 ( 우선 큰 수로 나누어야지 봉지 갯수가 적어지므로)
            // - 3. 계산된 나머지(input)값을 계속해서 체크하면서 계산해 줌

            // 출력 부분에 요구하는 "정확하게 N킬로그램을 만들 수 없다면 -1을 출력한다" 는 부분은
            // - 3의 배수도 아니고 5의 배수도 아닌 수 이고 (ex : 7)
            // - 5로 빼주었을 때 조차 3의 배수도 5의 배수도 아니다. (ex : 7 - 5 = 2)
            // - 그런 수가 있을 경우 -1로 출력
            while (input > 0)
            {
                if (input % 5 == 0)
                {
                    input -= 5;
                    count++;
                }
                else if (input % 3 == 0)
                {
                    input -= 3;
                    count++;
                }
                else if (input > 5)
                {
                    input -= 5;
                    count++;
                }
                else
                {
                    count = -1;
                    break;
                }
            }
            Console.WriteLine(count);
        }
    }
}

재호노트 님 블로그 참고

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 2751 수 정렬하기 2  (0) 2023.01.25
[BOJ] 10773 제로  (0) 2023.01.25
[BOJ] 4153 직각삼각형  (0) 2023.01.25
[BOJ] 2609 최대공약수 최소공배수  (0) 2023.01.25
[BOJ] 10822 더하기  (0) 2023.01.23