문제 링크입니다: 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 |