코딩테스트/Baekjoon

[백준 #2851] 슈퍼 마리오 (C++)

동띵 2021. 9. 18. 01:07

https://www.acmicpc.net/problem/2851

 

2851번: 슈퍼 마리오

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

www.acmicpc.net

 

배열에 버섯의 점수를 입력하고 그 점수를 더해가면서

합이 100 이상일 경우, 그 이전 합과 비교한다.

 

이전 합과 현재 합 중에 100에 가까운 것을 출력하고,

만약 100과의 차이가 같다면 더 큰 수(현재 합)를 출력한다.

 

#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	int arr[10];
	int sum = 0;
	int tmp, result;

	for (int i = 0; i < 10; i++) {
		cin >> arr[i];
		sum += arr[i];

		if (sum >= 100) {
			tmp = sum - arr[i];
			if (100 - tmp < sum - 100) {
				result = tmp;
			}
			else if (100 - tmp > sum - 100) {
				result = sum;
			}
			else {
				result = max(tmp, sum);
			}
			break;
		}
	}
	cout << result;
	return 0;
}