[c++/알고리즘] 백준 2839 설탕배달

corncheese·2021년 7월 21일
0

알고리즘문제풀이

목록 보기
13/31

// 못푼 문제 -> 정리해서 내일 다시 풀어보기!

다른 블로그의 풀이를 보니 greedy algorithm 을 사용하여 풀었다.
1. 큰 수(5)를 n번 만큼 이용하여 봉투에 채우는 방법이 봉투를 가장 적게 쓰는 방법니다.
2. 큰 수(5)로 채워지지 않으면 3만큼을 봉투에 담는다.
3. 그리고 난 후 다시 5로 나누어 나머지가 0 인지 확인한다.

이를 반복하여 최적의 해를 찾는다.

#include <iostream>
using namespace std;

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

   while(n>=0){
       if(n % 5 == 0){
           ans += (n/5);
           cout << ans;
           return 0;
       }
       else{
           n -= 3;
           ans++;
       }
   }
   cout << -1;
}

0개의 댓글