Computer Science/Algorithm Problem

백준] 2851 - 슈퍼 마리오(COCI 2010/2011)

TwinParadox 2018. 1. 22. 19:11

시간 제한 : 1초

메모리 제한 : 128MB




입력

총 10개의 줄에 각각의 버섯의 점수가 주어진다. 이 값은 100보다 작거나 같은 양의 정수이다. 버섯이 나온 순서대로 점수가 주어진다.




출력

첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다.




소스코드

#include <iostream>
using namespace std;
int main(void)
{
	int arr[10], sum = 0, ans1, ans2, ans;
	for (int i = 0; i < 10; i++)
		cin >> arr[i];
	for (int i = 0; i < 10; i++)
	{
		sum+=arr[i];
		if (sum == 100)
		{
			ans = sum;
			break;
		}
		else if (sum > 100)
		{
			ans1 = sum - 100;
			ans2 = 100 - sum + arr[i];
			if (ans1 > ans2)
				ans = sum - arr[i];
			else
				ans = sum;
			break;
		}
	}
	cout << ans;
}




Tip

간단한 구현문제로, 100에 근사한 값이 두 개인 경우에 대한 처리만 해주면 된다.



728x90