2851번 : 슈퍼 마리오
문제)
슈퍼 마리오 앞에 10개의 버섯이 일렬로 놓여져 있다. 이 버섯을 먹으면 점수를 받는다.
슈퍼 마리오는 버섯을 처음부터 나온 순서대로 집으려고 한다. 하지만, 모든 버섯을 집을 필요는 없고 중간에 중단할 수 있다. 중간에 버섯을 먹는 것을 중단했다면, 그 이후에 나온 버섯은 모두 먹을 수 없다. 따라서 첫 버섯을 먹지 않았다면, 그 이후 버섯도 모두 먹을 수 없다.
마리오는 받은 점수의 합을 최대한 100에 가깝게 만들려고 한다.
버섯의 점수가 주어졌을 때, 마리오가 받는 점수를 출력하는 프로그램을 작성하시오.
입력 :
총 10개의 줄에 각각의 버섯의 점수가 주어진다. 이 값은 100보다 작거나 같은 양의 정수이다. 버섯이 나온 순서대로 점수가 주어진다.
출력 :
첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다.
풀이)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
// 2851. 슈퍼 마리오
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vec;
vec.resize(10);
for (int& ele : vec) cin >> ele;
int answer = 0;
int compare = 9999999;
// i번째 버섯까지 먹는다.
for (int i = 0; i < 10; i++)
{
int total = 0;
for (int j = 0; j <= i; j++)
{
total += vec[j];
}
if (compare >= abs(100 - total))
{
answer = max(answer, total);
compare = abs(100 - total);
}
}
cout << answer;
return 0;
}
|
cs |
출처 : https://www.acmicpc.net/problem/2851
2851번: 슈퍼 마리오
첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다.
www.acmicpc.net
'Develop > 백준 (Cpp)' 카테고리의 다른 글
[백준] 1145번 : 적어도 대부분의 배수 (C++) (0) | 2024.01.04 |
---|---|
[백준] 14697번 : 방 배정하기 (C++) (0) | 2024.01.04 |
[백준] 2875번 : 대회 or 인턴 (C++) (1) | 2024.01.04 |
[백준] 6131번 : 완전 제곱수 (C++) (1) | 2024.01.04 |
[백준] 14568번 : 2017 연세대학교 프로그래밍 경시대회 (C++) (1) | 2024.01.04 |