알고리즘/BOJ

백준 2851번 슈퍼 마리오

꾸준함. 2018. 11. 4. 02:37

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


정말 간단한 구현 문제였습니다.

절대값을 통해 점수를 확인하는 것만 주의하면 쉽게 AC 받을 수 있을 것입니다.

(재귀 함수보다는 부분합을 이용해서 푸는게 더 간단할 것 같습니다.)


#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

 

int mushroom[10];

vector<int> result;

 

void simulation(int idx, int sum)

{

        result.push_back(sum);

        //마지막 버섯까지 확인

        if (idx == 9)

                 return;

        simulation(idx + 1, sum + mushroom[idx + 1]);

        //버섯 먹기를 중단하면 이어나가기 불가능

}

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0);

        for (int i = 0; i < 10; i++)

                 cin >> mushroom[i];

 

        simulation(0, mushroom[0]);

        int answer = 0; //초기 0

        //100점에 제일 가까운 점수를 찾는 과정

        for(int i=0; i<result.size(); i++)

                 if (abs(100 - answer) >= abs(100 - result[i]))

                         answer = result[i];

        cout << answer << "\n";

        return 0;

}



개발환경:Visual Studio 2017


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



반응형

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

백준 3184번 양  (0) 2018.11.04
백준 2617번 구슬 찾기  (0) 2018.11.04
백준 6581번 HTML  (4) 2018.11.03
백준 12761번 돌다리  (0) 2018.11.02
백준 2331번 반복수열  (5) 2018.11.02