알고리즘/BOJ

백준 11923번 PUTOVANJE

꾸준함. 2018. 9. 27. 01:43

문제 링크입니다: https://www.acmicpc.net/problem/11923


간단한 탐색 문제였습니다.


#include <iostream>

#include <algorithm>

using namespace std;

 

const int MAX = 1000 + 1;

 

int N, C;

int result;

int     fruit[MAX];

 

void maxFruit(int idx, int cnt, int total)

{

        //조건 만족

        if (total >= 0)

                 result = max(result, cnt);

        //기저 사례

        if (idx > N || total < 0)

                 return;

 

        //다음 과일을 먹을 수 있으면 무조건 먹는다

        if (total - fruit[idx] >= 0)

                 maxFruit(idx + 1, cnt + 1, total - fruit[idx]);

        //먹을 수 없는 경우에만 건너뛴다

        else

                 maxFruit(idx + 1, cnt, total);

}

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        cin >> N >> C;

 

        for (int i = 1; i <= N; i++)

                 cin >> fruit[i];

 

        for (int i = 1; i <= N; i++)

                 maxFruit(i, 0, C);

        cout << result << "\n";

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

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

백준 10709번 기상캐스터  (0) 2018.09.27
백준 11922번 BELA  (0) 2018.09.27
백준 11924번 PIANINO  (0) 2018.09.27
백준 1302번 베스트셀러  (0) 2018.09.26
백준 1568번 새  (0) 2018.09.26