본문 바로가기

알고리즘/BOJ

2839번

2839번 - 설탕 배달


5kg 짜리 설탕봉지를 최대한 많이 사용할 수록, 전체 사용 갯수는 줄어든다.


N제한이 최대 5000이기 때문에, 최소 봉지 사용 갯수가 1000개, 최대 봉지 사용 갯수는 1666개가 되므로 충분히 시간내에 풀 수 있다.


따라서 재귀함수를 5kg 을 먼저 사용하도록 돌리면서, 정답이 나오면 프로그램을 종료한다.


하지만 만약 정답이 나오지 않으면 -1을 출력한다.


<정답 코드>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<iostream>
 
using namespace std;
int N;
void go(int n,int k)
{
    int ret = 0;
 
    if (n == N)
    {
        cout << k << "\n";
        exit(0);
        return ;
    }
    
    if (n > N)
    {
        return ;
    }
 
    go(n + 5,k+1);
    go(n + 3,k+1);
 
 
 
    
 
}
int main()
{
    cin >> N;
 
    go(0,0);
 
    cout << "-1\n";
    return 0;
 
}
cs


반응형

'알고리즘 > BOJ' 카테고리의 다른 글

7569번  (0) 2018.03.18
10216번  (0) 2018.03.18
1239번  (0) 2018.03.11
14503번  (2) 2018.03.11
14502번  (2) 2018.03.11