백준 2839_설탕 배달[C++]
본문 바로가기
Algorithm/Python, C++

백준 2839_설탕 배달[C++]

by liveloper jay 2022. 2. 20.

문제

 

 

풀이

 이 문제는 N 을 5와 3을 순서대로 나누었을때 나올 수 있는 최소값을 구하는 문제입니다.

N kg의 설탕이 있을 때 5kg와 3kg 봉지에 담았을 때 최소 몇봉지가 나오는지를 구하면 되는 문제로 어렵지 않게 풀이를 진행할 수 있습니다. 잘 생각해보면 3kg 봉지에 설탕을 먼저 담는 것 보다 5kg 봉지에 담을 수 있는 만큼 담은 다음, 남은 양을 3kg에 담는 것이 더 적은 수의 봉지를 사용하여 담을 수 있는 방법입니다. 즉 5로 나눌 수 있는 만큼 나누어보고, 안되면 3으로 나누어지는지를 확인하면 됩니다. 코드는 아래와 같습니다.

 

 

 

소스코드

#include<iostream>
using namespace std;

int main(){
    int n,cnt=0;
    cin >>n; 

    cnt=n/5;
    if (n%5 !=0)
    {
        while (cnt>=0)
        {
            if ((n-5*cnt)%3==0) {
                cnt+=(n-5*cnt)/3;
                break;
            } cnt --;
        }
    }
    cout << cnt;
}

 

 

 

댓글